/* Mirror Academy — combined from all pages under new/; duplicate rule blocks removed. Regenerate: python3 scripts/merge-page-css.py */

@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap');

:root {
  --font: "Montserrat", sans-serif;
  --accent: #7c3aed;
  --accent-hover: #6d28d9;
  --accent-light: #f5f3ff;
  --accent-mid: #ede9fe;
  --text: #0f172a;
  --text2: #475569;
  --text3: #94a3b8;
  --bg: #f8fafc;
  --bg2: #f1f5f9;
  --white: #ffffff;
  --border: #e2e8f0;
  --border-dark: #cbd5e1;
  --green: #059669;
  --green-light: #ecfdf5;
  --amber: #d97706;
  --amber-light: #fffbeb;
  --red: #dc2626;
  --red-light: #fef2f2;
  --rlg: 14px;
  --sw: 224px;
  --shadow: 0 1px 3px rgba(15,23,42,.07), 0 4px 16px rgba(15,23,42,.05);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}

html{scroll-behavior:smooth;}

body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased;}

nav.top-nav{position:sticky;top:0;z-index:200;background:rgba(255,255,255,.95);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);height:60px;display:flex;align-items:center;padding:0 32px;gap:20px;}

.nav-logo{display:flex;align-items:center;gap:9px;text-decoration:none;flex-shrink:0; width: auto; height: auto;}
.logo-img{max-width: 160px; height: 33px; object-fit: contain; object-position: left center; display:flex}
.logo-text{font-size:15px;font-weight: 500;color:var(--text);letter-spacing:-.03em;}

.logo-text .sep{color:var(--text3);font-weight:400;margin:0 1px;}

.logo-text .sub{color:var(--accent);}

.nav-crumb{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text3);font-weight:500;}

.nav-crumb a{color:var(--text2);text-decoration:none;}

.nav-crumb a:hover{color:var(--accent);}

.nav-right{margin-left:auto;display:flex;align-items:center;gap:10px;}

.btn-ghost{font-family:var(--font);font-size:12px;font-weight:600;color:var(--text2);background:transparent;border:1.5px solid var(--border-dark);padding:6px 14px;border-radius:7px;text-decoration:none;transition:border-color .15s,color .15s;}

.btn-ghost:hover{border-color:var(--accent);color:var(--accent);}

.btn-primary-sm{font-family:var(--font);font-size:12px;font-weight:700;color:#fff;background:var(--accent);border:none;padding:7px 14px;border-radius:7px;text-decoration:none;transition:background .15s;}

.btn-primary-sm:hover{background:var(--accent-hover);}

.mod-hero{background:linear-gradient(135deg,#1e1b4b 0%,#312e81 40%,#4c1d95 100%);padding:52px 40px 44px;}

.hero-wrap{max-width:1100px;margin:0 auto;}

.mod-badge{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.12);color:rgba(255,255,255,.85);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:5px 12px;border-radius:20px;margin-bottom:18px;border:1px solid rgba(255,255,255,.15);}

.hero-row{display:grid;grid-template-columns:1fr auto;gap:32px;align-items:end;}

.mod-eyebrow{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#a78bfa;margin-bottom:10px;}

.mod-title{font-size:clamp(30px,4vw,48px);font-weight:900;letter-spacing:-.04em;color:#fff;line-height:1.08;margin-bottom:14px;}

.mod-sub{font-size:15px;color:rgba(255,255,255,.72);line-height:1.65;max-width:540px;margin-bottom:22px;}

.hero-meta{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}

.hmeta{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:rgba(255,255,255,.6);}

.hmdot{width:3px;height:3px;background:rgba(255,255,255,.3);border-radius:50%;}

.stepper{display:flex;gap:6px;}

.step{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight: 500;text-decoration:none;transition:transform .15s;}

.step:hover{transform:scale(1.1);}

.step-done{background:var(--green);color:#fff;}

.step-active{background:#fff;color:var(--accent);}

.step-future{background:rgba(255,255,255,.15);color:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.2);}

.stepper-label{font-size:10px;font-weight:600;color:rgba(255,255,255,.45);letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px;}

.page-body{max-width:1100px;margin:0 auto;padding:32px 0px 80px;display:grid;grid-template-columns:var(--sw) 1fr;gap:28px;align-items:start;}

.sidebar{position:sticky;top:72px;display:flex;flex-direction:column;gap:14px;}

.side-card{background:var(--white);border:1px solid var(--border);border-radius:var(--rlg);overflow:hidden;box-shadow:var(--shadow);}

.side-head{padding:14px 18px 12px;border-bottom:1px solid var(--border);}

.side-label{font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--text3);margin-bottom:2px;}

.side-title{font-size:13px;font-weight:700;color:var(--text);letter-spacing:-.02em;}

#toc{list-style:none;padding:6px 0;}

#toc li a{display:flex;align-items:center;gap:8px;padding:8px 18px;font-size:12.5px;color:var(--text2);text-decoration:none;font-weight:500;transition:color .15s,background .15s;border-left:2px solid transparent;}

#toc li a:hover,#toc li a.active{color:var(--accent);background:var(--accent-light);border-left-color:var(--accent);}

.toc-num{font-size:10px;font-weight:700;color:var(--text3);min-width:16px;}

.mod-list{list-style:none;}

.mod-row{border-bottom:1px solid var(--border);}

.mod-row:last-child{border-bottom:none;}

.mod-link{display:flex;align-items:center;gap:10px;padding:11px 18px;text-decoration:none;transition:background .15s;}

.mod-link:hover{background:var(--bg);}

.mod-link.active{background:var(--accent-light);}

.mn{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight: 500;flex-shrink:0;}

.mn-done{background:var(--green);color:#fff;}

.mn-a{background:var(--accent);color:#fff;}

.mn-u{background:var(--bg2);color:var(--text3);border:1px solid var(--border-dark);}

.mod-link-name{font-size:12px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

.mod-link.active .mod-link-name{color:var(--accent);}

.mod-link-time{font-size:10px;color:var(--text3);margin-top:1px;}

.side-cta{background:var(--text);border-radius:var(--rlg);padding:18px;}

.side-cta-title{font-size:13px;font-weight:700;color:#fff;margin-bottom:6px;}

.side-cta-desc{font-size:12px;color:rgba(255,255,255,.6);line-height:1.55;margin-bottom:12px;}

.side-cta-btn{display:block;background:#fff;color:var(--accent);font-family:var(--font);font-size:12px;font-weight:700;padding:8px 14px;border-radius:6px;text-decoration:none;text-align:center;transition:opacity .15s;}

.side-cta-btn:hover{opacity:.9;}

.content{min-width:0;display:flex;flex-direction:column;gap:20px;}

.card{background:var(--white);border:1px solid var(--border);border-radius:var(--rlg);padding:20px;box-shadow:var(--shadow);}

.card-eyebrow{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:10px;}

.card-title{font-size:clamp(20px,2.2vw,26px);font-weight: 500;letter-spacing:-.035em;color:var(--text);line-height:1.2;margin-bottom:16px;}

.prose{color:var(--text2);line-height:1.75;}

.prose p{margin-bottom:14px;}

.prose p:last-child{margin-bottom:0;}

.prose strong{color:var(--text);font-weight:700;}

.prose a{color:var(--accent);text-decoration:none;font-weight:600;}

.prose a:hover{text-decoration:underline;}

.note{background:var(--accent-light);border:1px solid var(--accent-mid);border-left:3px solid var(--accent);border-radius:8px;padding:14px 18px;margin-top:18px;}

.note-text{font-size:13px;color:var(--text2);line-height:1.65;}

.note-text strong{color:var(--accent);}

.warn-box{background:var(--amber-light);border:1px solid #fde68a;border-left:3px solid var(--amber);border-radius:8px;padding:14px 18px;margin-top:18px;}

.warn-text{font-size:13px;color:#92400e;line-height:1.65;}

.code-block{background:#0f172a;border-radius:10px;padding:20px 22px;margin:20px 0;overflow-x:auto;}

.code-label{font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:12px;}

.code-block pre{font-family:"Courier New",monospace;font-size:12px;line-height:1.7;color:#e2e8f0;}

.c-cm{color:#64748b;}

.c-kw{color:#a78bfa;}

.c-st{color:#6ee7b7;}

.c-fn{color:#60a5fa;}

.c-va{color:#fbbf24;}

.c-ty{color:#f9a8d4;}

.c-nu{color:#fb923c;}

.gap-visual{display:flex;flex-direction:column;gap:8px;margin:24px 0;}

.gap-row{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:9px;border:1px solid var(--border);}

.gap-icon{font-size:18px;flex-shrink:0;width:28px;text-align:center;}

.gap-text{flex:1;font-size:12.5px;font-weight:600;}

.gap-badge{font-size:9px;font-weight:700;padding:2px 8px;border-radius:4px;white-space:nowrap;}

.flow{background:#0f172a;border-radius:12px;padding:24px;margin:24px 0;}

.flow-title{font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:rgba(255,255,255,.35);margin-bottom:18px;}

.flow-step{display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.09);border-radius:8px;padding:11px 14px;margin-bottom:7px;}

.flow-step:last-child{margin-bottom:0;}

.flow-step-icon{font-size:15px;flex-shrink:0;width:24px;text-align:center;}

.flow-step-body{flex:1;}

.flow-step-name{font-size:12px;font-weight:700;color:#fff;margin-bottom:2px;}

.flow-step-desc{font-size:11px;color:rgba(255,255,255,.5);line-height:1.5;}

.flow-tag{font-size:9px;font-weight:700;padding:2px 7px;border-radius:4px;white-space:nowrap;flex-shrink:0;}

.tag-enc{background:rgba(110,231,183,.15);color:#6ee7b7;}

.tag-plain{background:rgba(239,68,68,.15);color:#fca5a5;}

.mem-compare{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:24px 0;}

.mem-card{border-radius:11px;padding:18px;border:1px solid var(--border);}

.mem-title{font-size:12px;font-weight: 500;margin-bottom:12px;}

.mem-entry{display:flex;gap:9px;margin-bottom:9px;align-items:flex-start;}

.mem-lbl{font-size:10px;font-weight:700;color:var(--text3);min-width:80px;flex-shrink:0;padding-top:2px;}

.mem-val{font-family:"Courier New",monospace;font-size:11px;line-height:1.5;padding:3px 7px;border-radius:4px;flex:1;}

.comp-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin:20px 0;}

.comp-card{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:16px 18px;}

.comp-name{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:3px;}

.comp-scope{font-size:9px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text3);margin-bottom:9px;}

.comp-req{font-size:12px;color:var(--text2);line-height:1.6;margin-bottom:8px;}

.comp-result{font-size:11.5px;font-weight:600;padding:5px 9px;border-radius:6px;background:var(--green-light);color:var(--green);line-height:1.5;}

.pg-cta{background:var(--accent-light);border:1px solid var(--accent-mid);border-radius:10px;padding:16px 20px;display:flex;align-items:center;gap:14px;margin:20px 0;flex-wrap:wrap;}

.pg-cta-text{flex:1;}

.pg-cta-label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:3px;}

.pg-cta-title{font-size:13px;font-weight:700;color:var(--text);}

.btn-pg{font-family:var(--font);font-size:12px;font-weight:700;background:var(--accent);color:#fff;border:none;padding:8px 16px;border-radius:7px;text-decoration:none;white-space:nowrap;transition:background .15s;}

.btn-pg:hover{background:var(--accent-hover);}

.vx-band{background:linear-gradient(135deg,#1e1b4b 0%,#4c1d95 100%);border-radius:var(--rlg);padding:20px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;}

.vx-icon{width:52px;height:52px;background:rgba(255,255,255,.12);border-radius:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}

.vx-body{flex:1;}

.vx-eyebrow{font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#a78bfa;margin-bottom:5px;}

.vx-title{font-size:17px;font-weight: 500;color:#fff;letter-spacing:-.03em;margin-bottom:6px;}

.vx-desc{font-size:13px;color:rgba(255,255,255,.65);line-height:1.6;}

.vx-btns{display:flex;gap:10px;flex-wrap:wrap;}

.btn-vxp{font-family:var(--font);font-size:12px;font-weight:700;background:#fff;color:var(--accent);border:none;padding:9px 18px;border-radius:7px;text-decoration:none;transition:opacity .15s;white-space:nowrap;}

.btn-vxp:hover{opacity:.9;}

.btn-vxg{font-family:var(--font);font-size:12px;font-weight:600;background:transparent;color:rgba(255,255,255,.75);border:1.5px solid rgba(255,255,255,.25);padding:9px 18px;border-radius:7px;text-decoration:none;transition:border-color .15s,color .15s;white-space:nowrap;}

.btn-vxg:hover{border-color:rgba(255,255,255,.6);color:#fff;}

.next-card{background:var(--white);border:1px solid var(--border);border-radius:var(--rlg);padding:20px;display:flex;align-items:center;gap:20px;box-shadow:var(--shadow);text-decoration:none;transition:border-color .15s,box-shadow .15s;}

.next-card:hover{border-color:var(--accent);box-shadow:0 4px 24px rgba(124,58,237,.12);}

.next-label{font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--text3);margin-bottom:4px;}

.next-title{font-size:17px;font-weight: 500;color:var(--text);letter-spacing:-.03em;}

.next-desc{font-size:12.5px;color:var(--text2);margin-top:4px;}

.next-arrow{margin-left:auto;width:40px;height:40px;border-radius:10px;background:var(--accent-light);color:var(--accent);display:flex;align-items:center;justify-content:center;flex-shrink:0;}

footer{background:var(--text);padding:40px;}

.foot-inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px; }

.foot-copy{font-size:12px;color:rgba(255,255,255,.4);}

nav.foot-links{background:transparent; border:none; padding:0; margin:0; height:auto; }

.foot-links{display:flex;gap:20px;flex-wrap:wrap;}

.foot-links a{font-size:12px;color:rgba(255,255,255,.5);text-decoration:none;font-weight:500;}

.foot-links a:hover{color:#fff;}

.geo-block{display:none;}

@media(max-width:768px){
  .page-body{grid-template-columns:1fr;padding:24px 20px 60px;}
  .sidebar{position:static;}
  .hero-row{grid-template-columns:1fr;}
  .mem-compare{grid-template-columns:1fr;}
  .comp-grid{grid-template-columns:1fr;}
  .mod-hero{padding:36px 20px 32px;}
  .card{padding:20px 20px;}
}

.c-bo{color:#34d399;}

.signal-table{width:100%;border-collapse:collapse;margin:20px 0;font-size:12.5px;}

.signal-table th{background:var(--bg2);padding:10px 14px;text-align:left;font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text3);border-bottom:2px solid var(--border);}

.signal-table td{padding:11px 14px;border-bottom:1px solid var(--border);color:var(--text2);line-height:1.5;vertical-align:top;}

.signal-table tr:last-child td{border-bottom:none;}

.signal-table tr:hover td{background:var(--bg);}

.sev-high{display:inline-block;font-size:9px;font-weight:700;padding:2px 7px;border-radius:4px;background:var(--red-light);color:var(--red);}

.sev-med{display:inline-block;font-size:9px;font-weight:700;padding:2px 7px;border-radius:4px;background:var(--amber-light);color:var(--amber);}

.sev-low{display:inline-block;font-size:9px;font-weight:700;padding:2px 7px;border-radius:4px;background:var(--green-light);color:var(--green);}

.phases{display:flex;flex-direction:column;gap:0;margin:22px 0;border:1px solid var(--border);border-radius:12px;overflow:hidden;}

.phase{display:flex;align-items:flex-start;gap:16px;padding:16px 20px;border-bottom:1px solid var(--border);}

.phase:last-child{border-bottom:none;}

.phase-num{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight: 500;flex-shrink:0;margin-top:1px;}

.phase-body{flex:1;}

.phase-name{font-size:13px;font-weight: 500;color:rgba(255,255,255,.9);margin-bottom:4px;}

.phase-desc{font-size:12.5px;color:var(--text3);line-height:1.6;}

.phase-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px;}

.action-pill{font-size:10px;font-weight:600;padding:3px 8px;border-radius:5px;background:var(--bg2);color:var(--text2);border:1px solid var(--border);}

.checklist-group{margin:20px 0;}

.cg-title{font-size:12px;font-weight: 500;color:var(--text);margin-bottom:10px;display:flex;align-items:center;gap:8px;}

.cg-tag{font-size:9px;font-weight:700;padding:2px 7px;border-radius:4px;}

.check-item{display:flex;align-items:flex-start;gap:10px;padding:9px 0;border-bottom:1px solid var(--border);}

.check-item:last-child{border-bottom:none;}

.check-box{width:18px;height:18px;border:1.5px solid var(--border-dark);border-radius:4px;flex-shrink:0;margin-top:1px;background:var(--white);}

.check-text{flex:1;font-size:12.5px;color:var(--text2);line-height:1.5;}

.check-ref{font-size:10px;color:var(--text3);font-weight:600;margin-top:2px;}

.dc-band{background:linear-gradient(135deg,#1e1b4b 0%,#4c1d95 100%);border-radius:var(--rlg);padding:20px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;}

.dc-icon{width:52px;height:52px;background:rgba(255,255,255,.12);border-radius:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}

.dc-body{flex:1;}

.dc-eyebrow{font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#a78bfa;margin-bottom:5px;}

.dc-title{font-size:17px;font-weight: 500;color:#fff;letter-spacing:-.03em;margin-bottom:6px;}

.dc-desc{font-size:13px;color:rgba(255,255,255,.75);line-height:1.6;}

.dc-btns{display:flex;gap:10px;flex-wrap:wrap;}

.btn-dcp{font-family:var(--font);font-size:12px;font-weight:700;background:#fff;color:var(--accent);border:none;padding:9px 18px;border-radius:7px;text-decoration:none;transition:opacity .15s;white-space:nowrap;}

.btn-dcp:hover{opacity:.9;}

.btn-dcg{font-family:var(--font);font-size:12px;font-weight:600;background:transparent;color:rgba(255,255,255,.75);border:1.5px solid rgba(255,255,255,.25);padding:9px 18px;border-radius:7px;text-decoration:none;transition:border-color .15s,color .15s;white-space:nowrap;}

.btn-dcg:hover{border-color:rgba(255,255,255,.6);color:#fff;}

.complete-card{background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border:1.5px solid #86efac;border-radius:var(--rlg);padding:20px;text-align:center;}

.complete-icon{font-size:40px;margin-bottom:12px;}

.complete-title{font-size:22px;font-weight:900;letter-spacing:-.04em;color:#14532d;margin-bottom:8px;}

.complete-sub{font-size:14px;color:#166534;line-height:1.65;margin:0 auto 20px;}

.complete-links{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;}

.btn-complete{font-family:var(--font);font-size:13px;font-weight:700;padding:10px 22px;border-radius:9px;text-decoration:none;transition:opacity .15s;}

.btn-complete:hover{opacity:.88;}

.btn-complete-primary{background:#16a34a;color:#fff;}

.btn-complete-ghost{background:transparent;color:#15803d;border:1.5px solid #86efac;}

@media(max-width:768px){
  .page-body{grid-template-columns:1fr;padding:24px 20px 60px;}
  .sidebar{position:static;}
  .hero-row{grid-template-columns:1fr;}
  .mod-hero{padding:36px 20px 32px;}
  .card{padding:20px 20px;}
  .signal-table{font-size:11px;}
}

:root {
  --font: "Montserrat", sans-serif;
  --accent: #7c3aed;
  --accent-hover: #6d28d9;
  --accent-light: #f5f3ff;
  --accent-mid: #ede9fe;
  --text: #0f172a;
  --text2: #475569;
  --text3: #94a3b8;
  --bg: #f8fafc;
  --bg2: #f1f5f9;
  --white: #ffffff;
  --border: #e2e8f0;
  --border-dark: #cbd5e1;
  --green: #059669;
  --green-light: #ecfdf5;
  --amber: #d97706;
  --amber-light: #fffbeb;
  --red: #dc2626;
  --red-light: #fef2f2;
  --navy: #1e3a5f;
  --radius: 10px;
  --rlg: 14px;
  --sw: 224px;
  --shadow: 0 1px 3px rgba(15,23,42,.07), 0 4px 16px rgba(15,23,42,.05);
  --shadow-md: 0 4px 24px rgba(15,23,42,.10);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
  font-family: var(--font);
  background: var(--bg);
  color: var(--text);
  font-size: 14px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

nav.top-nav {
  position: sticky; top: 0; z-index: 200;
  background: rgba(255,255,255,.95);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--border);
  height: 60px;
  display: flex; align-items: center;
  padding: 0 32px;
  gap: 20px;
}

.nav-logo {
  display: flex; align-items: center; gap: 9px;
  text-decoration: none; flex-shrink: 0;
}

.logo-text { font-size: 15px; font-weight: 800; color: var(--text); letter-spacing: -.03em; }

.logo-text .sep { color: var(--text3); font-weight: 400; margin: 0 1px; }

.logo-text .sub { color: var(--accent); }

.nav-crumb {
  display: flex; align-items: center; gap: 6px;
  font-size: 12px; color: var(--text3); font-weight: 500;
}

.nav-crumb a { color: var(--text2); text-decoration: none; }

.nav-crumb a:hover { color: var(--accent); }

.nav-crumb span { color: var(--text3); }

.nav-right { margin-left: auto; display: flex; align-items: center; gap: 10px; }

.btn-ghost {
  font-family: var(--font); font-size: 12px; font-weight: 600;
  color: var(--text2); background: transparent; border: 1.5px solid var(--border-dark);
  padding: 6px 14px; border-radius: 7px; text-decoration: none; cursor: pointer;
  transition: border-color .15s, color .15s;
}

.btn-ghost:hover { border-color: var(--accent); color: var(--accent); }

.btn-primary-sm {
  font-family: var(--font); font-size: 12px; font-weight: 700;
  color: #fff; background: var(--accent); border: none;
  padding: 7px 14px; border-radius: 7px; text-decoration: none; cursor: pointer;
  transition: background .15s;
}

.btn-primary-sm:hover { background: var(--accent-hover); }

.mod-hero {
  background: linear-gradient(135deg, #1e1b4b 0%, #312e81 40%, #4c1d95 100%);
  padding: 52px 40px 44px;
}

.hero-wrap { max-width: 1100px; margin: 0 auto; }

.mod-badge {
  display: inline-flex; align-items: center; gap: 7px;
  background: rgba(255,255,255,.12); color: rgba(255,255,255,.85);
  font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  padding: 5px 12px; border-radius: 20px; margin-bottom: 18px;
  border: 1px solid rgba(255,255,255,.15);
}

.hero-row { display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: end; }

.mod-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #a78bfa; margin-bottom: 10px; }

.mod-title { font-size: clamp(30px,4vw,48px); font-weight: 500; letter-spacing: -.04em; color: #fff; line-height: 1.08; margin-bottom: 14px; }

.mod-sub { font-size: 15px; color: rgba(255,255,255,.72); line-height: 1.65; max-width: 540px; margin-bottom: 22px; }

.hero-meta { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }

.hmeta { display: flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 600; color: rgba(255,255,255,.6); }

.hmdot { width: 3px; height: 3px; background: rgba(255,255,255,.3); border-radius: 50%; }

.stepper { display: flex; gap: 6px; }

.step {
  width: 32px; height: 32px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 800; text-decoration: none;
  transition: transform .15s;
}

.step:hover { transform: scale(1.1); }

.step-done { background: var(--green); color: #fff; }

.step-active { background: #fff; color: var(--accent); }

.step-future { background: rgba(255,255,255,.15); color: rgba(255,255,255,.5); border: 1px solid rgba(255,255,255,.2); }

.stepper-label { font-size: 10px; font-weight: 600; color: rgba(255,255,255,.45); letter-spacing: .06em; text-transform: uppercase; margin-bottom: 6px; }

.page-body {
  max-width: 1100px; margin: 0 auto;
  padding: 32px 0px 80px;
  display: grid;
  grid-template-columns: var(--sw) 1fr;
  gap: 28px;
  align-items: start;
}

.sidebar { position: sticky; top: 72px; display: flex; flex-direction: column; gap: 14px; }

.side-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--rlg); overflow: hidden; box-shadow: var(--shadow); }

.side-head { padding: 14px 18px 12px; border-bottom: 1px solid var(--border); }

.side-label { font-size: 10px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--text3); margin-bottom: 2px; }

.side-title { font-size: 13px; font-weight: 700; color: var(--text); letter-spacing: -.02em; }

#toc { list-style: none; padding: 6px 0; }

#toc li a {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 18px; font-size: 12.5px; color: var(--text2);
  text-decoration: none; font-weight: 500;
  transition: color .15s, background .15s;
  border-left: 2px solid transparent;
}

#toc li a:hover, #toc li a.active {
  color: var(--accent); background: var(--accent-light);
  border-left-color: var(--accent); 
}

.toc-num { font-size: 10px; font-weight: 700; color: var(--text3); min-width: 16px; }

.mod-list { list-style: none; }

.mod-row { border-bottom: 1px solid var(--border); }

.mod-row:last-child { border-bottom: none; }

.mod-link { display: flex; align-items: center; gap: 10px; padding: 11px 18px; text-decoration: none; transition: background .15s; }

.mod-link:hover { background: var(--bg); }

.mod-link.active { background: var(--accent-light); }

.mn { width: 24px; height: 24px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 10px; font-weight: 800; flex-shrink: 0; }

.mn-a { background: var(--accent); color: #fff; }

.mn-u { background: var(--bg2); color: var(--text3); border: 1px solid var(--border-dark); }

.mod-link-name { font-size: 12px; font-weight: 600; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.mod-link.active .mod-link-name { color: var(--accent); }

.mod-link-time { font-size: 10px; color: var(--text3); margin-top: 1px; }

.side-cta { background: var(--text); border-radius: var(--rlg); padding: 18px; }

.side-cta-title { font-size: 13px; font-weight: 700; color: #fff; margin-bottom: 6px; }

.side-cta-desc { font-size: 12px; color: rgba(255,255,255,.6); line-height: 1.55; margin-bottom: 12px; }

.side-cta-btn { display: block; background: #fff; color: var(--accent); font-family: var(--font); font-size: 12px; font-weight: 700; padding: 8px 14px; border-radius: 6px; text-decoration: none; text-align: center; transition: opacity .15s; }

.side-cta-btn:hover { opacity: .9; }

.content { min-width: 0; display: flex; flex-direction: column; gap: 20px; }

.card {
  background: var(--white); border: 1px solid var(--border);
  border-radius: var(--rlg); 
  box-shadow: var(--shadow);
}

.card-eyebrow {
  font-size: 10px; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; color: var(--accent); margin-bottom: 10px;
}

.card-title {
  font-size: clamp(20px,2.2vw,26px); font-weight: 800;
  letter-spacing: -.035em; color: var(--text); line-height: 1.2;
  margin-bottom: 16px;
}

.prose { color: var(--text2); line-height: 1.75; }

.prose p { margin-bottom: 14px; }

.prose p:last-child { margin-bottom: 0; }

.prose strong { color: var(--text); font-weight: 700; }

.prose a { color: var(--accent); text-decoration: none; font-weight: 600; }

.prose a:hover { text-decoration: underline; }

.note {
  background: var(--accent-light); border: 1px solid var(--accent-mid);
  border-left: 3px solid var(--accent);
  border-radius: 8px; padding: 14px 18px;
}

.note-text { font-size: 13px; color: var(--text2); line-height: 1.65; }

.note-text strong { color: var(--accent); }

.warn-box {
  background: var(--amber-light); border: 1px solid #fde68a;
  border-left: 3px solid var(--amber);
  border-radius: 8px; padding: 14px 18px;
}

.warn-text { font-size: 13px; color: #92400e; line-height: 1.65; }

.sec-label {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 10px; font-weight: 700; letter-spacing: .09em;
  text-transform: uppercase; color: var(--text3);
  margin-bottom: 16px;
}

.sec-label::before { content: ""; display: block; width: 20px; height: 1px; background: var(--border-dark); }

.embed-visual {
  background: linear-gradient(135deg, #1e1b4b 0%, #312e81 100%);
  border-radius: 12px; padding: 32px;
  margin: 24px 0;
}

.embed-vis-title { font-size: 11px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: rgba(255,255,255,.5); margin-bottom: 20px; text-align: center; }

.embed-word-row { display: flex; align-items: flex-start; gap: 20px; margin-bottom: 16px; flex-wrap: wrap; }

.embed-word { font-size: 16px; font-weight: 800; color: #fff; min-width: 90px; padding-top: 6px; }

.embed-arrow { font-size: 18px; color: rgba(255,255,255,.3); padding-top: 4px; }

.embed-vec { display: flex; gap: 4px; flex-wrap: wrap; flex: 1; }

.embed-num {
  background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.15);
  color: #a78bfa; font-size: 10px; font-weight: 700;
  padding: 3px 7px; border-radius: 4px; font-family: monospace;
}

.embed-num.hi { background: rgba(124,58,237,.35); border-color: rgba(167,139,250,.4); color: #c4b5fd; }

.embed-note { font-size: 11px; color: rgba(255,255,255,.4); margin-top: 16px; text-align: center; font-style: italic; }

.sim-diagram {
  background: var(--bg2); border: 1px solid var(--border);
  border-radius: 12px; padding: 28px; margin: 24px 0;
  display: grid; grid-template-columns: 1fr 1fr; gap: 24px;
}

.sim-col-title { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--text3); margin-bottom: 14px; text-align: center; }

.sim-space {
  position: relative; height: 180px;
  background: #fff; border: 1px solid var(--border);
  border-radius: 10px; overflow: hidden;
}

.sim-dot {
  position: absolute; width: 10px; height: 10px;
  border-radius: 50%; transform: translate(-50%,-50%);
}

.sim-label {
  position: absolute; font-size: 10px; font-weight: 700;
  color: var(--text); white-space: nowrap;
  transform: translate(-50%, 8px);
}

.sim-line {
  position: absolute; background: var(--border-dark);
  height: 1px; transform-origin: left center;
}

.sim-caption { font-size: 11.5px; color: var(--text2); text-align: center; margin-top: 10px; line-height: 1.5; }

.rag-pipeline {
  margin: 24px 0;
}

.rag-pipeline-title { font-size: 11px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--text3); margin-bottom: 18px; }

.pipeline-track {
  display: flex; align-items: stretch; gap: 0; overflow-x: auto;
  padding-bottom: 4px;
}

.pipe-step {
  flex: 1; min-width: 110px;
  background: var(--white); border: 1px solid var(--border);
  border-radius: 10px; padding: 16px 14px;
  text-align: center; position: relative;
}

.pipe-step + .pipe-step { margin-left: 10px; }

.pipe-step::after {
  content: "→";
  position: absolute; right: -14px; top: 50%; transform: translateY(-50%);
  font-size: 14px; color: var(--text3); z-index: 2;
}

.pipe-step:last-child::after { display: none; }

.pipe-icon {
  width: 36px; height: 36px; border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 10px;
}

.pipe-name { font-size: 11px; font-weight: 800; color: var(--text); margin-bottom: 4px; letter-spacing: -.01em; }

.pipe-desc { font-size: 10px; color: var(--text3); line-height: 1.4; }

.pipe-risk { font-size: 9px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; margin-top: 8px; padding: 2px 6px; border-radius: 4px; }

.risk-high { background: #fef2f2; color: var(--red); }

.risk-med { background: var(--amber-light); color: var(--amber); }

.risk-low { background: var(--green-light); color: var(--green); }

.rag-stack { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 24px 0; }

.stack-layer {
  background: var(--white); border: 1px solid var(--border);
  border-radius: 10px; padding: 16px 18px;
  display: flex; gap: 14px; align-items: flex-start;
}

.stack-icon {
  width: 36px; height: 36px; border-radius: 9px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}

.stack-name { font-size: 13px; font-weight: 800; color: var(--text); margin-bottom: 3px; letter-spacing: -.02em; }

.stack-desc { font-size: 12px; color: var(--text2); line-height: 1.5; }

.stack-examples { font-size: 11px; color: var(--text3); margin-top: 4px; font-style: italic; }

.stack-badge {
  display: inline-flex; align-items: center;
  font-size: 9px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  padding: 2px 6px; border-radius: 4px; margin-top: 6px;
}

.embed-table-wrap { overflow-x: auto; margin: 20px 0; border-radius: 10px; border: 1px solid var(--border); }

.embed-table { width: 100%; border-collapse: collapse; font-size: 12.5px; }

.embed-table th {
  background: var(--bg2); font-size: 10px; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase; color: var(--text3);
  padding: 12px 16px; text-align: left; border-bottom: 1px solid var(--border);
}

.embed-table td { padding: 12px 16px; border-bottom: 1px solid var(--border); color: var(--text2); vertical-align: top; }

.embed-table tr:last-child td { border-bottom: none; }

.embed-table tr:hover td { background: var(--bg); }

.embed-table td:first-child { font-weight: 700; color: var(--text); }

.tag-s { display: inline-block; font-size: 9px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; padding: 2px 7px; border-radius: 4px; }

.tag-sem { background: var(--accent-light); color: var(--accent); }

.tag-syn { background: var(--bg2); color: var(--text3); }

.cod-visual {
  background: var(--bg2); border: 1px solid var(--border);
  border-radius: 12px; padding: 28px; margin: 24px 0;
}

.cod-title { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--text3); margin-bottom: 20px; }

.cod-bars { display: flex; flex-direction: column; gap: 12px; }

.cod-bar-row { display: flex; align-items: center; gap: 14px; }

.cod-bar-label { font-size: 12px; font-weight: 700; color: var(--text); min-width: 110px; }

.cod-bar-track { flex: 1; height: 14px; background: var(--border); border-radius: 8px; overflow: hidden; }

.cod-bar-fill { height: 100%; border-radius: 8px; transition: width .3s; }

.cod-bar-val { font-size: 11px; font-weight: 700; color: var(--text2); min-width: 50px; text-align: right; }

.cod-note { font-size: 12px; color: var(--text2); margin-top: 18px; line-height: 1.6; }

.cache-callout {
  background: #fff7ed; border: 1px solid #fed7aa;
  border-left: 3px solid var(--amber);
  border-radius: 10px; padding: 16px; margin: 20px 0;
  display: flex; gap: 14px; align-items: flex-start;
}

.cache-icon { font-size: 22px; flex-shrink: 0; margin-top: 2px; }

.cache-title { font-size: 13px; font-weight: 800; color: #92400e; margin-bottom: 5px; }

.cache-text { font-size: 12.5px; color: #78350f; line-height: 1.65; }

.vectax-band {
  background: linear-gradient(135deg, #1e1b4b 0%, #4c1d95 100%);
  border-radius: var(--rlg); padding: 20px;
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
}

.vectax-icon-wrap {
  width: 52px; height: 52px; background: rgba(255,255,255,.12);
  border-radius: 14px; display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}

.vectax-body { flex: 1; }

.vectax-eyebrow { font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #a78bfa; margin-bottom: 5px; }

.vectax-title { font-size: 17px; font-weight: 800; color: #fff; letter-spacing: -.03em; margin-bottom: 6px; }

.vectax-desc { font-size: 13px; color: rgba(255,255,255,.65); line-height: 1.6; }

.vectax-btns { display: flex; gap: 10px; flex-wrap: wrap; }

.btn-vectax-primary {
  font-family: var(--font); font-size: 12px; font-weight: 700;
  background: #fff; color: var(--accent); border: none;
  padding: 9px 18px; border-radius: 7px; text-decoration: none;
  cursor: pointer; transition: opacity .15s; white-space: nowrap;
}

.btn-vectax-primary:hover { opacity: .9; }

.btn-vectax-ghost {
  font-family: var(--font); font-size: 12px; font-weight: 600;
  background: transparent; color: rgba(255,255,255,.75);
  border: 1.5px solid rgba(255,255,255,.25);
  padding: 9px 18px; border-radius: 7px; text-decoration: none;
  cursor: pointer; transition: border-color .15s, color .15s; white-space: nowrap;
}

.btn-vectax-ghost:hover { border-color: rgba(255,255,255,.6); color: #fff; }

.next-card {
  background: var(--white); border: 1px solid var(--border);
  border-radius: var(--rlg); padding: 20px;
  display: flex; align-items: center; gap: 20px;
  box-shadow: var(--shadow); text-decoration: none;
  transition: border-color .15s, box-shadow .15s;
}

.next-card:hover { border-color: var(--accent); box-shadow: 0 4px 24px rgba(124,58,237,.12); }

.next-label { font-size: 10px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--text3); margin-bottom: 4px; }

.next-title { font-size: 17px; font-weight: 800; color: var(--text); letter-spacing: -.03em; }

.next-desc { font-size: 12.5px; color: var(--text2); margin-top: 4px; }

.next-arrow {
  margin-left: auto; width: 40px; height: 40px; border-radius: 10px;
  background: var(--accent-light); color: var(--accent);
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}

.stat-row { display: flex; gap: 12px; flex-wrap: wrap; margin: 20px 0; }

.stat-pill {
  background: var(--bg2); border: 1px solid var(--border);
  border-radius: 10px; padding: 14px 18px; text-align: center; flex: 1; min-width: 120px;
}

.stat-val { font-size: 22px; font-weight: 500; color: var(--accent); letter-spacing: -.04em; line-height: 1; margin-bottom: 4px; }

.stat-label { font-size: 11px; font-weight: 600; color: var(--text2); }

footer {
  background: var(--text); padding: 40px;
}

.foot-inner {
  max-width: 1100px; margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 16px;
}

.foot-copy { font-size: 12px; color: rgba(255,255,255,.4); }

.foot-links { display: flex; gap: 20px; flex-wrap: wrap; }

.foot-links a { font-size: 12px; color: rgba(255,255,255,.5); text-decoration: none; font-weight: 500; }

.foot-links a:hover { color: #fff; }

.geo-block { display: none; }

@media (max-width: 768px) {
  .page-body { grid-template-columns: 1fr; padding: 24px 20px 60px; }
  .sidebar { position: static; }
  .hero-row { grid-template-columns: 1fr; }
  .rag-stack { grid-template-columns: 1fr; }
  .sim-diagram { grid-template-columns: 1fr; }
  .mod-hero { padding: 36px 20px 32px; }
  .card { padding: 20px 20px; }
  .embed-word-row { flex-direction: column; gap: 8px; }
}

.index-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 20px 0; }

.index-card {
  background: var(--bg2); border: 1px solid var(--border);
  border-radius: 10px; padding: 16px;
}

.index-name { font-size: 14px; font-weight: 800; color: var(--text); letter-spacing: -.02em; margin-bottom: 4px; }

.index-full { font-size: 11px; font-weight: 600; color: var(--text3); margin-bottom: 10px; }

.index-desc { font-size: 12.5px; color: var(--text2); line-height: 1.6; margin-bottom: 10px; }

.index-risk { font-size: 11px; color: var(--text2); line-height: 1.55; }

.index-risk strong { color: var(--text); }

.storage-layers { display: flex; flex-direction: column; gap: 10px; margin: 20px 0; }

.storage-row {
  display: flex; align-items: flex-start; gap: 16px;
  background: var(--white); border: 1px solid var(--border);
  border-radius: 10px; padding: 16px 20px;
}

.storage-icon {
  width: 38px; height: 38px; border-radius: 9px;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}

.storage-name { font-size: 13px; font-weight: 800; color: var(--text); margin-bottom: 3px; }

.storage-desc { font-size: 12.5px; color: var(--text2); line-height: 1.55; }

.storage-risk { font-size: 11.5px; margin-top: 6px; font-weight: 600; }

.deploy-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin: 20px 0; }

.deploy-card {
  border-radius: 10px; padding: 20px;
  border: 1px solid var(--border);
}

.deploy-icon { font-size: 26px; margin-bottom: 10px; }

.deploy-name { font-size: 13px; font-weight: 800; color: var(--text); margin-bottom: 6px; }

.deploy-desc { font-size: 12px; color: var(--text2); line-height: 1.55; }

.deploy-trade { font-size: 11px; margin-top: 8px; padding: 5px 8px; border-radius: 6px; font-weight: 600; }

.ac-compare { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 20px 0; }

.ac-card {
  background: var(--bg2); border: 1px solid var(--border);
  border-radius: 10px; padding: 16px;
}

.ac-title { font-size: 13px; font-weight: 800; color: var(--text); margin-bottom: 4px; }

.ac-sub { font-size: 11px; color: var(--text3); margin-bottom: 10px; font-weight: 600; }

.ac-desc { font-size: 12.5px; color: var(--text2); line-height: 1.6; margin-bottom: 10px; }

.ac-example {
  background: var(--white); border: 1px solid var(--border);
  border-radius: 7px; padding: 10px 12px;
  font-size: 11.5px; color: var(--text2); line-height: 1.55;
}

.ac-example strong { color: var(--accent); }

.enc-layers { display: flex; flex-direction: column; gap: 10px; margin: 20px 0; }

.enc-row {
  display: flex; align-items: flex-start; gap: 16px;
  border-radius: 10px; padding: 16px 20px; border: 1px solid var(--border);
}

.enc-num {
  width: 28px; height: 28px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 800; flex-shrink: 0; margin-top: 2px;
}

.enc-name { font-size: 13px; font-weight: 800; color: var(--text); margin-bottom: 3px; }

.enc-desc { font-size: 12.5px; color: var(--text2); line-height: 1.55; }

.enc-note { font-size: 11.5px; margin-top: 6px; color: var(--text3); }

.key-list { display: flex; flex-direction: column; gap: 8px; margin: 16px 0; }

.key-item {
  display: flex; align-items: flex-start; gap: 12px;
  background: var(--white); border: 1px solid var(--border);
  border-radius: 8px; padding: 12px 16px;
}

.key-badge {
  font-size: 9px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase;
  padding: 3px 8px; border-radius: 4px; white-space: nowrap; flex-shrink: 0; margin-top: 2px;
}

.key-text { font-size: 12.5px; color: var(--text2); line-height: 1.55; }

.key-text strong { color: var(--text); }

.playground-cta {
  background: linear-gradient(135deg, #0f172a 0%, #1e3a5f 100%);
  border-radius: 12px;padding: 20px;
  display: flex; align-items: center; gap: 18px; flex-wrap: wrap;
  margin: 20px 0;
}

.playground-icon {
  width: 44px; height: 44px; background: rgba(124,58,237,.25);
  border-radius: 12px; display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}

.playground-body { flex: 1; }

.playground-label { font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #a78bfa; margin-bottom: 4px; }

.playground-title { font-size: 15px; font-weight: 800; color: #fff; margin-bottom: 4px; }

.playground-desc { font-size: 12px; color: rgba(255,255,255,.6); line-height: 1.55; }

.btn-playground {
  font-family: var(--font); font-size: 12px; font-weight: 700;
  background: var(--accent); color: #fff; border: none;
  padding: 9px 18px; border-radius: 7px; text-decoration: none;
  white-space: nowrap; transition: background .15s;
}

.btn-playground:hover { background: var(--accent-hover); }

.btn-ghost { font-family: var(--font); font-size: 12px; font-weight: 600; color: var(--text2); background: transparent; border: 1.5px solid var(--border-dark); padding: 6px 14px; border-radius: 7px; text-decoration: none; transition: border-color .15s, color .15s; }

.btn-primary-sm { font-family: var(--font); font-size: 12px; font-weight: 700; color: #fff; background: var(--accent); border: none; padding: 7px 14px; border-radius: 7px; text-decoration: none; transition: background .15s; }

.mod-hero { background: linear-gradient(135deg, #3b0764 0%, #4c1d95 40%, #1e1b4b 100%); padding: 52px 40px 44px; }

.mod-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #f9a8d4; margin-bottom: 10px; }

.mn-done { background: var(--green); color: #fff; }

.attack-map { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 24px 0; }

.attack-card { border-radius: 12px; padding: 20px 22px; border: 1px solid var(--border); position: relative; overflow: hidden; }

.attack-card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; }

.ac-red::before { background: var(--red); }

.ac-amber::before { background: var(--amber); }

.ac-purple::before { background: var(--accent); }

.attack-number { font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 8px; }

.ac-red .attack-number { color: var(--red); }

.ac-amber .attack-number { color: var(--amber); }

.ac-purple .attack-number { color: var(--accent); }

.attack-name { font-size: 15px; font-weight: 800; color: var(--text); letter-spacing: -.025em; margin-bottom: 6px; }

.attack-desc { font-size: 12.5px; color: var(--text2); line-height: 1.65; margin-bottom: 10px; }

.attack-owasp { font-size: 10px; font-weight: 700; padding: 3px 8px; border-radius: 4px; display: inline-flex; align-items: center; gap: 5px; }

.owasp-red { background: var(--red-light); color: var(--red); }

.owasp-amber { background: var(--amber-light); color: var(--amber); }

.owasp-purple { background: var(--accent-light); color: var(--accent); }

.threat-rows { display: flex; flex-direction: column; gap: 14px; margin: 24px 0; }

.threat-row { background: var(--white); border: 1px solid var(--border); border-radius: 12px; padding: 20px 22px; gap: 18px; align-items: flex-start; }

.threat-icon { width: 40px; height: 40px; border-radius: 10px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }

.threat-content { flex: 1; }

.threat-name { font-size: 14px; font-weight: 800; color: var(--text); letter-spacing: -.02em; margin-bottom: 4px; }

.threat-desc { font-size: 12.5px; color: var(--text2); line-height: 1.65; margin-bottom: 8px; }

.threat-tags { display: flex; gap: 6px; flex-wrap: wrap; }

.tag { font-size: 9px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 3px 8px; border-radius: 4px; }

.tag-red { background: var(--red-light); color: var(--red); }

.tag-amber { background: var(--amber-light); color: var(--amber); }

.tag-purple { background: var(--accent-light); color: var(--accent); }

.tag-green { background: var(--green-light); color: var(--green); }

.tag-gray { background: var(--bg2); color: var(--text3); }

.attack-chain { margin: 24px 0; background: var(--bg2); border: 1px solid var(--border); border-radius: 12px; padding: 28px; }

.chain-title { font-size: 11px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--text3); margin-bottom: 20px; }

.chain-steps { display: flex; flex-direction: column; gap: 0; }

.chain-step { display: flex; gap: 16px; align-items: flex-start; position: relative; }

.chain-step + .chain-step { margin-top: 4px; }

.chain-connector { display: flex; flex-direction: column; align-items: center; flex-shrink: 0; }

.chain-dot { width: 32px; height: 32px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 800; color: #fff; flex-shrink: 0; z-index: 1; }

.chain-line { width: 2px; height: 24px; flex-shrink: 0; margin: 0 auto; }

.chain-body { padding-top: 5px; padding-bottom: 24px; }

.chain-step-name { font-size: 13px; font-weight: 800; color: var(--text); margin-bottom: 3px; }

.chain-step-desc { font-size: 12px; color: var(--text2); line-height: 1.55; }

.chain-step-tag { font-size: 9px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 2px 7px; border-radius: 4px; display: inline-block; margin-top: 5px; }

.misconfig-list { display: flex; flex-direction: column; gap: 10px; margin: 20px 0; }

.misconfig-item { display: flex; align-items: flex-start; gap: 14px; background: var(--white); border: 1px solid var(--border); border-radius: 10px; padding: 14px 18px; }

.misconfig-sev { font-size: 9px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; padding: 3px 8px; border-radius: 4px; white-space: nowrap; flex-shrink: 0; margin-top: 2px; }

.misconfig-name { font-size: 13px; font-weight: 700; color: var(--text); margin-bottom: 3px; }

.misconfig-desc { font-size: 12px; color: var(--text2); line-height: 1.55; }

.inversion-diagram { background: linear-gradient(135deg, #0f172a 0%, #1e1b4b 100%); border-radius: 12px; padding: 28px; margin: 24px 0; }

.inv-title { font-size: 11px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: rgba(255,255,255,.45); margin-bottom: 22px; text-align: center; }

.inv-flow { display: flex; align-items: center; justify-content: center; gap: 0; flex-wrap: wrap; }

.inv-box { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.15); border-radius: 10px; padding: 14px 16px; text-align: center; min-width: 130px; }

.inv-box-label { font-size: 10px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; margin-bottom: 6px; }

.inv-box-val { font-size: 12px; font-weight: 600; line-height: 1.4; }

.inv-arrow { font-size: 20px; color: rgba(255,255,255,.3); padding: 0 8px; flex-shrink: 0; }

.inv-caption { font-size: 11px; color: rgba(255,255,255,.4); text-align: center; margin-top: 18px; font-style: italic; line-height: 1.55; }

.inv-lock { display: inline-flex; align-items: center; gap: 6px; background: rgba(124,58,237,.3); border: 1px solid rgba(167,139,250,.3); border-radius: 6px; padding: 3px 10px; font-size: 10px; font-weight: 700; color: #a78bfa; margin-top: 8px; }

.impact-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; margin: 20px 0; }

.impact-cell { background: var(--bg2); border: 1px solid var(--border); border-radius: 10px; padding: 16px 14px; text-align: center; }

.impact-icon { font-size: 24px; margin-bottom: 8px; }

.impact-label { font-size: 11px; font-weight: 700; color: var(--text); }

.platform-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 20px 0; }

.platform-card { background: var(--white); border: 1px solid var(--border); border-radius: 10px; padding: 16px; }

.platform-name { font-size: 14px; font-weight: 800; color: var(--text); margin-bottom: 4px; letter-spacing: -.02em; }

.platform-type { font-size: 10px; font-weight: 600; color: var(--text3); margin-bottom: 12px; text-transform: uppercase; letter-spacing: .07em; }

.platform-checks { display: flex; flex-direction: column; gap: 7px; }

.pcheck { display: flex; align-items: flex-start; gap: 8px; font-size: 12px; color: var(--text2); line-height: 1.5; }

.pcheck-icon { font-size: 12px; flex-shrink: 0; margin-top: 1px; }

.discover-band { background: linear-gradient(135deg, #0f172a 0%, #1e3a5f 100%); border-radius: var(--rlg); padding: 20px; display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }

.discover-icon-wrap { width: 52px; height: 52px; background: rgba(249,168,212,.15); border-radius: 14px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }

.discover-body { flex: 1; }

.discover-eyebrow { font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #f9a8d4; margin-bottom: 5px; }

.discover-title { font-size: 17px; font-weight: 800; color: #fff; letter-spacing: -.03em; margin-bottom: 6px; }

.discover-desc { font-size: 13px; color: rgba(255,255,255,.65); line-height: 1.6; }

.discover-btns { display: flex; gap: 10px; flex-wrap: wrap; }

.btn-discover-primary { font-family: var(--font); font-size: 12px; font-weight: 700; background: #f9a8d4; color: #0f172a; border: none; padding: 9px 18px; border-radius: 7px; text-decoration: none; transition: opacity .15s; white-space: nowrap; }

.btn-discover-primary:hover { opacity: .9; }

.btn-discover-ghost { font-family: var(--font); font-size: 12px; font-weight: 600; background: transparent; color: rgba(255,255,255,.75); border: 1.5px solid rgba(255,255,255,.25); padding: 9px 18px; border-radius: 7px; text-decoration: none; transition: border-color .15s, color .15s; white-space: nowrap; }

.btn-discover-ghost:hover { border-color: rgba(255,255,255,.6); color: #fff; }

.btn-vx-primary { font-family: var(--font); font-size: 12px; font-weight: 700; background: #fff; color: var(--accent); border: none; padding: 9px 18px; border-radius: 7px; text-decoration: none; transition: opacity .15s; white-space: nowrap; }

.btn-vx-primary:hover { opacity: .9; }

.btn-vx-ghost { font-family: var(--font); font-size: 12px; font-weight: 600; background: transparent; color: rgba(255,255,255,.75); border: 1.5px solid rgba(255,255,255,.25); padding: 9px 18px; border-radius: 7px; text-decoration: none; transition: border-color .15s, color .15s; white-space: nowrap; }

.btn-vx-ghost:hover { border-color: rgba(255,255,255,.6); color: #fff; }

.playground-inline { background: var(--accent-light); border: 1px solid var(--accent-mid); border-radius: 10px; padding: 16px 20px; display: flex; align-items: center; gap: 14px; margin: 20px 0; flex-wrap: wrap; }

.playground-inline-text { flex: 1; }

.playground-inline-label { font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--accent); margin-bottom: 3px; }

.playground-inline-title { font-size: 13px; font-weight: 700; color: var(--text); }

.btn-pg-inline { font-family: var(--font); font-size: 12px; font-weight: 700; background: var(--accent); color: #fff; border: none; padding: 8px 16px; border-radius: 7px; text-decoration: none; white-space: nowrap; transition: background .15s; }

.btn-pg-inline:hover { background: var(--accent-hover); }

@media (max-width: 768px) {
  .page-body { grid-template-columns: 1fr; padding: 24px 20px 60px; }
  .sidebar { position: static; }
  .hero-row { grid-template-columns: 1fr; }
  .attack-map { grid-template-columns: 1fr; }
  .platform-grid { grid-template-columns: 1fr; }
  .impact-grid { grid-template-columns: repeat(2,1fr); }
  .mod-hero { padding: 36px 20px 32px; }
  .card { padding: 20px 20px; }
  .inv-flow { flex-direction: column; }
}

:root {
  --font: "Montserrat", sans-serif;
  --accent: #7c3aed;
  --accent-hover: #6d28d9;
  --accent-light: #f5f3ff;
  --accent-mid: #ede9fe;
  --text: #0f172a;
  --text2: #475569;
  --text3: #94a3b8;
  --bg: #f8fafc;
  --bg2: #f1f5f9;
  --white: #ffffff;
  --border: #e2e8f0;
  --border-dark: #cbd5e1;
  --green: #059669;
  --green-light: #ecfdf5;
  --amber: #d97706;
  --amber-light: #fffbeb;
  --red: #dc2626;
  --red-light: #fef2f2;
  --radius: 10px;
  --rlg: 14px;
  --sw: 224px;
  --shadow: 0 1px 3px rgba(15,23,42,.07), 0 4px 16px rgba(15,23,42,.05);
}

.pipeline-flow { margin: 24px 0; }

.pipeline-flow-title { font-size: 11px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--text3); margin-bottom: 16px; }

.pipeline-steps { display: flex; flex-direction: column; gap: 0; }

.pipe-step-row { display: flex; gap: 0; align-items: stretch; }

.pipe-node { flex: 1; }

.pipe-node-inner { background: var(--white); border: 1px solid var(--border); border-radius: 10px; padding: 14px 16px; height: 100%; }

.pipe-node-num { font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--text3); margin-bottom: 6px; }

.pipe-node-name { font-size: 13px; font-weight: 800; color: var(--text); margin-bottom: 4px; letter-spacing: -.02em; }

.pipe-node-desc { font-size: 11.5px; color: var(--text2); line-height: 1.5; margin-bottom: 8px; }

.pipe-node-risk { font-size: 9.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; padding: 3px 8px; border-radius: 4px; display: inline-block; }

.pipe-connector { width: 32px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; color: var(--text3); font-size: 16px; }

.pipe-down-row { display: flex; justify-content: center; padding: 4px 0; color: var(--text3); font-size: 16px; }

.doc-type-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin: 20px 0; }

.doc-card { border-radius: 10px; padding: 16px 18px; border: 1px solid var(--border); }

.doc-icon { font-size: 22px; margin-bottom: 8px; }

.doc-name { font-size: 13px; font-weight: 800; color: var(--text); margin-bottom: 4px; }

.doc-risk-label { font-size: 9px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; padding: 2px 7px; border-radius: 4px; display: inline-block; margin-bottom: 8px; }

.doc-risks { font-size: 12px; color: var(--text2); line-height: 1.55; }

.chunk-visual { background: var(--bg2); border: 1px solid var(--border); border-radius: 12px; padding: 24px; margin: 24px 0; }

.chunk-vis-title { font-size: 11px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--text3); margin-bottom: 18px; }

.chunk-doc { background: var(--white); border: 1px solid var(--border); border-radius: 8px; overflow: hidden; margin-bottom: 16px; }

.chunk-doc-header { background: var(--bg2); padding: 8px 14px; font-size: 10px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--text3); border-bottom: 1px solid var(--border); }

.chunk-blocks { display: flex; gap: 0; }

.chunk-block { flex: 1; padding: 10px 14px; font-size: 11.5px; line-height: 1.5; border-right: 1px solid var(--border); }

.chunk-block:last-child { border-right: none; }

.chunk-block-label { font-size: 9px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; margin-bottom: 6px; }

.chunk-safe { color: var(--text2); }

.chunk-risk { background: #fff7ed; color: #92400e; }

.chunk-poison { background: #fef2f2; color: #7f1d1d; }

.supply-chain-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 20px 0; }

.sc-card { background: var(--bg2); border: 1px solid var(--border); border-radius: 10px; padding: 16px; }

.sc-title { font-size: 13px; font-weight: 800; color: var(--text); margin-bottom: 4px; }

.sc-sub { font-size: 10px; font-weight: 600; color: var(--text3); margin-bottom: 10px; text-transform: uppercase; letter-spacing: .07em; }

.sc-desc { font-size: 12.5px; color: var(--text2); line-height: 1.6; margin-bottom: 10px; }

.sc-fix { font-size: 12px; color: var(--green); font-weight: 600; padding: 6px 10px; background: var(--green-light); border-radius: 6px; }

.encrypt-diagram { margin: 24px 0; }

.encrypt-diag-title { font-size: 11px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--text3); margin-bottom: 18px; }

.enc-timeline { display: flex; flex-direction: column; gap: 0; }

.enc-row-item { display: flex; gap: 16px; align-items: flex-start; }

.enc-row-item + .enc-row-item { margin-top: 2px; }

.enc-connector { display: flex; flex-direction: column; align-items: center; flex-shrink: 0; width: 36px; }

.enc-dot { width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }

.enc-line-seg { width: 2px; height: 20px; }

.enc-body { padding: 6px 0 20px; flex: 1; }

.enc-step-name { font-size: 13px; font-weight: 800; letter-spacing: -.02em; margin-bottom: 3px; }

.enc-step-desc { font-size: 12.5px; color: var(--text2); line-height: 1.6; }

.enc-badge { display: inline-flex; align-items: center; gap: 5px; font-size: 9px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 3px 8px; border-radius: 4px; margin-top: 6px; }

.fpe-table-wrap { overflow-x: auto; border-radius: 10px; border: 1px solid var(--border); margin: 20px 0; }

.fpe-table { width: 100%; border-collapse: collapse; font-size: 12.5px; }

.fpe-table th { background: var(--bg2); font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--text3); padding: 12px 16px; text-align: left; border-bottom: 1px solid var(--border); }

.fpe-table td { padding: 12px 16px; border-bottom: 1px solid var(--border); color: var(--text2); vertical-align: middle; }

.fpe-table tr:last-child td { border-bottom: none; }

.fpe-table tr:hover td { background: var(--bg); }

.fpe-table td:first-child { font-weight: 700; color: var(--text); }

.fpe-plain { font-family: monospace; font-size: 11.5px; color: var(--red); background: var(--red-light); padding: 2px 7px; border-radius: 4px; }

.fpe-enc { font-family: monospace; font-size: 11.5px; color: var(--green); background: var(--green-light); padding: 2px 7px; border-radius: 4px; }

.code-block { background: #0f172a; border-radius: 10px; padding: 20px 22px; margin: 20px 0; overflow-x: auto; }

.code-block-label { font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #64748b; margin-bottom: 12px; }

.code-block pre { font-family: "Courier New", monospace; font-size: 12px; line-height: 1.7; color: #e2e8f0; }

.code-block .c-comment { color: #64748b; }

.code-block .c-keyword { color: #a78bfa; }

.code-block .c-string { color: #6ee7b7; }

.code-block .c-func { color: #60a5fa; }

.code-block .c-var { color: #fbbf24; }

.validation-list { display: flex; flex-direction: column; gap: 10px; margin: 20px 0; }

.val-item { display: flex; align-items: flex-start; gap: 14px; background: var(--white); border: 1px solid var(--border); border-radius: 10px; padding: 14px 18px; }

.val-badge { font-size: 9px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; padding: 3px 8px; border-radius: 4px; white-space: nowrap; flex-shrink: 0; margin-top: 2px; }

.val-name { font-size: 13px; font-weight: 700; color: var(--text); margin-bottom: 3px; }

.val-desc { font-size: 12px; color: var(--text2); line-height: 1.55; }

.anomaly-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 20px 0; }

.anomaly-card { background: var(--white); border: 1px solid var(--border); border-radius: 10px; padding: 16px 18px; }

.anomaly-signal { font-size: 13px; font-weight: 800; color: var(--text); margin-bottom: 4px; }

.anomaly-desc { font-size: 12px; color: var(--text2); line-height: 1.55; }

.anomaly-severity { font-size: 9px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 2px 7px; border-radius: 4px; display: inline-block; margin-top: 7px; }

.graph-embed-visual { background: var(--bg2); border: 1px solid var(--border); border-radius: 12px; padding: 26px; margin: 24px 0; }

.gev-title { font-size: 11px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--text3); margin-bottom: 18px; }

.gev-flow { display: flex; align-items: center; gap: 0; flex-wrap: wrap; justify-content: center; }

.gev-box { background: var(--white); border: 1px solid var(--border); border-radius: 9px; padding: 14px 16px; text-align: center; min-width: 120px; flex: 1; }

.gev-box-icon { font-size: 20px; margin-bottom: 6px; }

.gev-box-name { font-size: 12px; font-weight: 800; color: var(--text); margin-bottom: 3px; }

.gev-box-desc { font-size: 10.5px; color: var(--text3); line-height: 1.4; }

.gev-arrow { font-size: 18px; color: var(--text3); padding: 0 8px; flex-shrink: 0; }

.checklist { display: flex; flex-direction: column; gap: 8px; margin: 20px 0; }

.check-item { display: flex; align-items: flex-start; gap: 12px; padding: 12px 16px; border-radius: 9px; border: 1px solid var(--border); background: var(--white); }

.check-box { width: 20px; height: 20px; border-radius: 5px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 1px; font-size: 11px; font-weight: 800; }

.check-done { background: var(--green); color: #fff; }

.check-req { background: var(--accent); color: #fff; }

.check-text { font-size: 12.5px; color: var(--text2); line-height: 1.55; }

.check-text strong { color: var(--text); }

@media (max-width: 768px) {
  .page-body { grid-template-columns: 1fr; padding: 24px 20px 60px; }
  .sidebar { position: static; }
  .hero-row { grid-template-columns: 1fr; }
  .doc-type-grid { grid-template-columns: 1fr 1fr; }
  .supply-chain-grid { grid-template-columns: 1fr; }
  .anomaly-grid { grid-template-columns: 1fr; }
  .gev-flow { flex-direction: column; }
  .mod-hero { padding: 36px 20px 32px; }
  .card { padding: 20px 20px; }
}

.note{background:var(--accent-light);border:1px solid var(--accent-mid);border-left:3px solid var(--accent);border-radius:8px;padding:14px 18px;}

.warn-box{background:var(--amber-light);border:1px solid #fde68a;border-left:3px solid var(--amber);border-radius:8px;padding:14px 18px;}

.sec-label{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--text3);margin-bottom:16px;}

.sec-label::before{content:"";display:block;width:20px;height:1px;background:var(--border-dark);}

.tenancy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:24px 0;}

.tenancy-card{border-radius:12px;padding:20px;border:1px solid var(--border);text-align:center;}

.tenancy-icon{font-size:28px;margin-bottom:10px;}

.tenancy-name{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:6px;}

.tenancy-desc{font-size:12px;color:var(--text2);line-height:1.6;margin-bottom:10px;text-align:left;}

.tenancy-badge{display:inline-block;font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 9px;border-radius:4px;}

.filter-compare{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:24px 0;}

.filter-card{border-radius:12px;padding:20px;border:1px solid var(--border);}

.filter-title{font-size:13px;font-weight: 500;margin-bottom:14px;}

.filter-step{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px;}

.filter-step-num{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight: 500;flex-shrink:0;margin-top:1px;}

.filter-step-text{font-size:12px;color:var(--text2);line-height:1.55;}

.filter-verdict{font-size:11px;font-weight:700;padding:8px 12px;border-radius:7px;margin-top:10px;}

.rbac-table-wrap{overflow-x:auto;border-radius:10px;border:1px solid var(--border);margin:20px 0;}

.rbac-table{width:100%;border-collapse:collapse;font-size:12.5px;}

.rbac-table th{background:var(--bg2);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);padding:12px 16px;text-align:left;border-bottom:1px solid var(--border);}

.rbac-table td{padding:12px 16px;border-bottom:1px solid var(--border);color:var(--text2);vertical-align:top;}

.rbac-table tr:last-child td{border-bottom:none;}

.rbac-table tr:hover td{background:var(--bg);}

.rbac-table td:first-child{font-weight:700;color:var(--text);}

.perm-yes{font-size:10px;font-weight:700;background:var(--green-light);color:var(--green);padding:2px 8px;border-radius:4px;}

.perm-no{font-size:10px;font-weight:700;background:var(--red-light);color:var(--red);padding:2px 8px;border-radius:4px;}

.perm-ltd{font-size:10px;font-weight:700;background:var(--amber-light);color:var(--amber);padding:2px 8px;border-radius:4px;}

.code-block-label{font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:12px;}

.c-comment{color:#64748b;}

.c-keyword{color:#a78bfa;}

.c-string{color:#6ee7b7;}

.c-func{color:#60a5fa;}

.c-var{color:#fbbf24;}

.c-type{color:#f9a8d4;}

.identity-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0;}

.identity-card{background:var(--white);border:1px solid var(--border);border-radius:10px;padding:16px 18px;}

.identity-icon{font-size:20px;margin-bottom:8px;}

.identity-name{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:4px;}

.identity-desc{font-size:12px;color:var(--text2);line-height:1.55;margin-bottom:8px;}

.identity-risk{font-size:11.5px;font-weight:600;padding:5px 9px;border-radius:6px;}

.filter-fail-visual{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:24px;margin:24px 0;}

.ffv-title{font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--text3);margin-bottom:18px;}

.ffv-layers{display:flex;flex-direction:column;gap:0;}

.ffv-layer{display:flex;align-items:stretch;gap:14px;}

.ffv-layer+.ffv-layer{margin-top:8px;}

.ffv-line{width:2px;background:var(--border-dark);margin:0 auto;height:16px;}

.ffv-box{flex:1;border-radius:9px;padding:12px 16px;border:1px solid var(--border);}

.ffv-label{font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;margin-bottom:4px;}

.ffv-text{font-size:12px;color:var(--text2);line-height:1.5;}

.ffv-status{font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:4px;display:inline-block;margin-top:6px;}

.ffv-broken{display:flex;align-items:center;gap:8px;background:var(--red-light);border:1px solid #fecaca;border-radius:9px;padding:10px 14px;margin-top:8px;}

.ffv-broken-icon{font-size:18px;flex-shrink:0;}

.ffv-broken-text{font-size:12px;color:#7f1d1d;font-weight:600;line-height:1.5;}

.gov-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0;}

.gov-card{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding: 16px;}

.gov-icon{font-size:22px;margin-bottom:8px;}

.gov-name{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:4px;}

.gov-desc{font-size:12.5px;color:var(--text2);line-height:1.6;}

.rotation-table-wrap{overflow-x:auto;border-radius:10px;border:1px solid var(--border);margin:20px 0;}

.rotation-table{width:100%;border-collapse:collapse;font-size:12.5px;}

.rotation-table th{background:var(--bg2);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);padding:11px 16px;text-align:left;border-bottom:1px solid var(--border);}

.rotation-table td{padding:11px 16px;border-bottom:1px solid var(--border);color:var(--text2);vertical-align:top;}

.rotation-table tr:last-child td{border-bottom:none;}

.rotation-table tr:hover td{background:var(--bg);}

.rotation-table td:first-child{font-weight:700;color:var(--text);}

.playground-inline{background:var(--accent-light);border:1px solid var(--accent-mid);border-radius:10px;padding:16px 20px;display:flex;align-items:center;gap:14px;margin:20px 0;flex-wrap:wrap;}

.playground-inline-text{flex:1;}

.playground-inline-label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:3px;}

.playground-inline-title{font-size:13px;font-weight:700;color:var(--text);}

.btn-pg-inline{font-family:var(--font);font-size:12px;font-weight:700;background:var(--accent);color:#fff;border:none;padding:8px 16px;border-radius:7px;text-decoration:none;white-space:nowrap;transition:background .15s;}

.btn-pg-inline:hover{background:var(--accent-hover);}

.vectax-band{background:linear-gradient(135deg,#1e1b4b 0%,#4c1d95 100%);border-radius:var(--rlg);padding:20px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;}

.vectax-icon-wrap{width:52px;height:52px;background:rgba(255,255,255,.12);border-radius:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}

.vectax-body{flex:1;}

.vectax-eyebrow{font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#a78bfa;margin-bottom:5px;}

.vectax-title{font-size:17px;font-weight: 500;color:#fff;letter-spacing:-.03em;margin-bottom:6px;}

.vectax-desc{font-size:13px;color:rgba(255,255,255,.65);line-height:1.6;}

.vectax-btns{display:flex;gap:10px;flex-wrap:wrap;}

.btn-vx-primary{font-family:var(--font);font-size:12px;font-weight:700;background:#fff;color:var(--accent);border:none;padding:9px 18px;border-radius:7px;text-decoration:none;transition:opacity .15s;white-space:nowrap;}

.btn-vx-primary:hover{opacity:.9;}

.btn-vx-ghost{font-family:var(--font);font-size:12px;font-weight:600;background:transparent;color:rgba(255,255,255,.75);border:1.5px solid rgba(255,255,255,.25);padding:9px 18px;border-radius:7px;text-decoration:none;transition:border-color .15s,color .15s;white-space:nowrap;}

.btn-vx-ghost:hover{border-color:rgba(255,255,255,.6);color:#fff;}

@media(max-width:768px){
  .page-body{grid-template-columns:1fr;padding:24px 20px 60px;}
  .sidebar{position:static;}
  .hero-row{grid-template-columns:1fr;}
  .tenancy-grid{grid-template-columns:1fr;}
  .filter-compare{grid-template-columns:1fr;}
  .identity-grid{grid-template-columns:1fr;}
  .gov-grid{grid-template-columns:1fr;}
  .mod-hero{padding:36px 20px 32px;}
  .card{padding:20px 20px;}
}

.fhe-spectrum{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:24px 0;}

.fhe-card{border-radius:12px;padding:22px;border:1px solid var(--border);position:relative;overflow:hidden;}

.fhe-card::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;}

.fhe-phe::before{background:#f97316;}

.fhe-she::before{background:var(--amber);}

.fhe-fhe::before{background:var(--accent);}

.fhe-badge{font-size:10px;font-weight: 500;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:4px;display:inline-block;margin-bottom:10px;}

.fhe-name{font-size:16px;font-weight:900;color:var(--text);letter-spacing:-.03em;margin-bottom:4px;}

.fhe-full{font-size:11px;color:var(--text3);margin-bottom:12px;font-weight:600;}

.fhe-ops{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;}

.fhe-op{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:var(--text2);}

.fhe-examples{font-size:11.5px;color:var(--text3);font-style:italic;margin-top:8px;line-height:1.5;}

.fhe-limit{font-size:12px;font-weight:600;padding:6px 10px;border-radius:6px;margin-top:10px;line-height:1.5;}

.noise-diagram{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:26px;margin:24px 0;}

.noise-title{font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--text3);margin-bottom:18px;}

.noise-bars{display:flex;flex-direction:column;gap:14px;}

.noise-row{display:flex;align-items:center;gap:14px;}

.noise-label{font-size:12px;font-weight:700;color:var(--text);min-width:140px;}

.noise-track{flex:1;height:18px;background:var(--border);border-radius:10px;overflow:visible;position:relative;}

.noise-fill{height:100%;border-radius:10px;display:flex;align-items:center;padding-left:10px;}

.noise-fill-text{font-size:10px;font-weight:700;color:#fff;white-space:nowrap;}

.noise-threshold{position:absolute;right:0;top:-6px;bottom:-6px;width:3px;background:var(--red);border-radius:2px;}

.noise-threshold-label{position:absolute;right:5px;top:-18px;font-size:9px;font-weight:700;color:var(--red);white-space:nowrap;}

.noise-status{font-size:11px;font-weight:700;min-width:90px;text-align:right;}

.enc-flow{background:linear-gradient(135deg,#0f172a 0%,#1e1b4b 100%);border-radius:12px;padding:28px;margin:24px 0;}

.enc-flow-title{font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:rgba(255,255,255,.4);margin-bottom:20px;}

.enc-step{display:flex;align-items:center;gap:14px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);border-radius:9px;padding:12px 16px;margin-bottom:8px;}

.enc-step:last-child{margin-bottom:0;}

.enc-step-icon{width:36px;height:36px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;}

.enc-step-body{flex:1;}

.enc-step-name{font-size:12px;font-weight: 500;color:#fff;margin-bottom:2px;}

.enc-step-desc{font-size:11px;color:rgba(255,255,255,.55);line-height:1.5;}

.enc-tag{font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:4px;white-space:nowrap;flex-shrink:0;}

.tag-plain{background:rgba(239,68,68,.2);color:#fca5a5;}

.tag-enc{background:rgba(110,231,183,.2);color:#6ee7b7;}

.tag-key{background:rgba(167,139,250,.2);color:#a78bfa;}

.c-num{color:#fb923c;}

.mem-compare{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:24px 0;}

.mem-card{border-radius:12px;padding:20px;border:1px solid var(--border);}

.mem-card-title{font-size:12px;font-weight: 500;margin-bottom:12px;}

.mem-row{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px;}

.mem-lbl{font-size:11px;font-weight:700;min-width:90px;flex-shrink:0;margin-top:2px;}

.mem-val{font-family:"Courier New",monospace;font-size:11px;line-height:1.55;padding:4px 8px;border-radius:5px;flex:1;}

.three-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0;}

.grid-card{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:16px 18px;}

.grid-card-icon{font-size:20px;margin-bottom:8px;}

.grid-card-name{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:5px;}

.grid-card-desc{font-size:12px;color:var(--text2);line-height:1.55;}

.lib-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:20px 0;}

.lib-card{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding: 16px;}

.lib-name{font-size:14px;font-weight:900;color:var(--text);margin-bottom:3px;letter-spacing:-.02em;}

.lib-org{font-size:10px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.07em;margin-bottom:10px;}

.lib-schemes{font-size:12px;color:var(--text2);margin-bottom:8px;}

.lib-schemes strong{color:var(--text);}

.lib-lang{display:inline-block;font-size:10px;font-weight:700;background:var(--accent-light);color:var(--accent);padding:2px 8px;border-radius:4px;margin-bottom:8px;}

.lib-note{font-size:11.5px;color:var(--text2);line-height:1.55;}

.mcp-arch{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:26px;margin:24px 0;}

.mcp-arch-title{font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--text3);margin-bottom:18px;}

.mcp-flow{display:flex;align-items:stretch;gap:0;flex-wrap:wrap;}

.mcp-node{background:var(--white);border:1px solid var(--border);border-radius:10px;padding:14px 16px;text-align:center;flex:1;min-width:110px;}

.mcp-node-icon{font-size:22px;margin-bottom:8px;}

.mcp-node-name{font-size:12px;font-weight: 500;color:var(--text);margin-bottom:4px;}

.mcp-node-desc{font-size:10.5px;color:var(--text3);line-height:1.4;}

.mcp-node-tag{font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-top:6px;}

.mcp-arrow{display:flex;align-items:center;padding:0 8px;font-size:18px;color:var(--text3);flex-shrink:0;}

.comp-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0;}

.comp-card{background:var(--white);border:1px solid var(--border);border-radius:10px;padding: 16px;}

.comp-scope{font-size:10px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.07em;margin-bottom:10px;}

.comp-req{font-size:12.5px;color:var(--text2);line-height:1.6;margin-bottom:8px;}

.comp-fhe{font-size:12px;font-weight:600;padding:6px 10px;border-radius:6px;background:var(--green-light);color:var(--green);line-height:1.5;}

.pg-inline{background:var(--accent-light);border:1px solid var(--accent-mid);border-radius:10px;padding:16px 20px;display:flex;align-items:center;gap:14px;margin:20px 0;flex-wrap:wrap;}

.pg-inline-text{flex:1;}

.pg-inline-label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:3px;}

.pg-inline-title{font-size:13px;font-weight:700;color:var(--text);}

.btn-vx-p{font-family:var(--font);font-size:12px;font-weight:700;background:#fff;color:var(--accent);border:none;padding:9px 18px;border-radius:7px;text-decoration:none;transition:opacity .15s;white-space:nowrap;}

.btn-vx-p:hover{opacity:.9;}

.btn-vx-g{font-family:var(--font);font-size:12px;font-weight:600;background:transparent;color:rgba(255,255,255,.75);border:1.5px solid rgba(255,255,255,.25);padding:9px 18px;border-radius:7px;text-decoration:none;transition:border-color .15s,color .15s;white-space:nowrap;}

.btn-vx-g:hover{border-color:rgba(255,255,255,.6);color:#fff;}

@media(max-width:768px){
  .page-body{grid-template-columns:1fr;padding:24px 20px 60px;}
  .sidebar{position:static;}
  .hero-row{grid-template-columns:1fr;}
  .fhe-spectrum{grid-template-columns:1fr;}
  .mem-compare{grid-template-columns:1fr;}
  .three-grid{grid-template-columns:1fr;}
  .lib-grid{grid-template-columns:1fr;}
  .comp-grid{grid-template-columns:1fr;}
  .mcp-flow{flex-direction:column;}
  .mcp-arrow{transform:rotate(90deg);}
  .mod-hero{padding:36px 20px 32px;}
  .card{padding:20px 20px;}
}

:root {
  --font: "Montserrat", sans-serif;
  --accent: #7c3aed;
  --accent-hover: #6d28d9;
  --accent-light: #f5f3ff;
  --accent-mid: #ede9fe;
  --text: #0f172a;
  --text2: #475569;
  --text3: #94a3b8;
  --bg: #f8fafc;
  --bg2: #f1f5f9;
  --white: #ffffff;
  --border: #e2e8f0;
  --border-dark: #cbd5e1;
  --green: #059669;
  --green-light: #ecfdf5;
  --amber: #d97706;
  --amber-light: #fffbeb;
  --red: #dc2626;
  --red-light: #fef2f2;
  --blue: #2563eb;
  --blue-light: #eff6ff;
  --rlg: 14px;
  --sw: 224px;
  --shadow: 0 1px 3px rgba(15,23,42,.07), 0 4px 16px rgba(15,23,42,.05);
}

.anatomy-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0;}

.anatomy-cell{border-radius:12px;padding:20px;border:1px solid var(--border);position:relative;overflow:hidden;}

.anatomy-cell::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;}

.ac-perception::before{background:#3b82f6;}

.ac-memory::before{background:#8b5cf6;}

.ac-planning::before{background:#f59e0b;}

.ac-action::before{background:#10b981;}

.anatomy-icon{width:36px;height:36px;border-radius:9px;display:flex;align-items:center;justify-content:center;margin-bottom:10px;font-size:16px;}

.anatomy-title{font-size:14px;font-weight: 500;color:var(--text);margin-bottom:6px;letter-spacing:-.02em;}

.anatomy-desc{font-size:12px;color:var(--text2);line-height:1.6;}

.anatomy-examples{margin-top:8px;display:flex;gap:5px;flex-wrap:wrap;}

.anatomy-ex{font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px;background:var(--bg2);color:var(--text3);border:1px solid var(--border);}

.memory-stack{display:flex;flex-direction:column;gap:10px;margin:22px 0;}

.memory-tier{border-radius:10px;border:1px solid var(--border);overflow:hidden;}

.memory-header{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border);}

.memory-badge{font-size:9px;font-weight: 500;padding:3px 8px;border-radius:4px;letter-spacing:.06em;text-transform:uppercase;flex-shrink:0;}

.memory-name{font-size:13px;font-weight:700;color:var(--text);}

.memory-scope{margin-left:auto;font-size:10px;font-weight:600;color:var(--text3);}

.memory-body{padding:12px 16px;display:flex;gap:20px;flex-wrap:wrap;}

.memory-fact{font-size:12px;color:var(--text2);line-height:1.5;flex:1;min-width:180px;}

.memory-risk{font-size:11px;font-weight:600;padding:4px 9px;border-radius:6px;background:var(--red-light);color:var(--red);margin-top:8px;display:inline-block;}

.tool-flow{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.tf-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.tf-steps{display:flex;flex-direction:column;gap:0;}

.tf-step{display:flex;align-items:flex-start;gap:12px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.06);}

.tf-step:last-child{border-bottom:none;}

.tf-num{width:24px;height:24px;border-radius:50%;background:rgba(124,58,237,.3);border:1px solid rgba(124,58,237,.5);color:#a78bfa;font-size:10px;font-weight: 500;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;}

.tf-body{flex:1;}

.tf-name{font-size:12px;font-weight:700;color:#fff;margin-bottom:3px;}

.tf-desc{font-size:11px;color:rgba(255,255,255,.5);line-height:1.5;}

.tf-risk{font-size:9px;font-weight:700;padding:2px 7px;border-radius:4px;background:rgba(239,68,68,.15);color:#fca5a5;margin-top:4px;display:inline-block;}

.orch-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin:22px 0;}

.orch-card{border:1px solid var(--border);border-radius:12px;overflow:hidden;}

.orch-header{padding:11px 14px;border-bottom:1px solid var(--border);}

.orch-title{font-size:12px;font-weight: 500;color:var(--text);}

.orch-tag{font-size:9px;font-weight:700;padding:2px 6px;border-radius:4px;margin-top:3px;display:inline-block;}

.orch-diagram{padding:14px;min-height:100px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:var(--bg);}

.orch-node{padding:6px 12px;border-radius:6px;font-size:10px;font-weight:700;text-align:center;}

.orch-arrow{font-size:12px;color:var(--text3);}

.orch-row{display:flex;gap:6px;align-items:center;}

.orch-body{padding:12px 14px;}

.orch-desc{font-size:11.5px;color:var(--text2);line-height:1.55;}

.orch-risk{font-size:10px;font-weight:600;color:var(--red);margin-top:7px;}

.failure-list{display:flex;flex-direction:column;gap:10px;margin:22px 0;}

.failure-item{border:1px solid var(--border);border-radius:10px;overflow:hidden;}

.failure-header{display:flex;align-items:center;gap:12px;padding:13px 16px;border-bottom:1px solid var(--border);}

.failure-icon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;}

.failure-name{font-size:13px;font-weight: 500;color:var(--text);flex:1;}

.failure-sev{font-size:9px;font-weight:700;padding:3px 8px;border-radius:5px;white-space:nowrap;}

.sev-critical{background:#fef2f2;color:#991b1b;}

.sev-high{background:var(--red-light);color:var(--red);}

.sev-med{background:var(--amber-light);color:var(--amber);}

.failure-body{padding:12px 16px;}

.failure-what{font-size:12.5px;color:var(--text2);line-height:1.6;margin-bottom:8px;}

.failure-example{background:var(--bg2);border-radius:7px;padding:10px 12px;font-size:11.5px;color:var(--text2);line-height:1.55;border-left:3px solid var(--border-dark);}

.failure-example strong{color:var(--text);font-weight:700;}

.compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0;}

.compare-card{border-radius:11px;padding:18px;border:1px solid var(--border);}

.compare-title{font-size:13px;font-weight: 500;margin-bottom:12px;display:flex;align-items:center;gap:8px;}

.compare-row{display:flex;gap:10px;margin-bottom:9px;align-items:flex-start;font-size:12.5px;color:var(--text2);line-height:1.5;}

.compare-row:last-child{margin-bottom:0;}

.compare-dot{width:6px;height:6px;border-radius:50%;margin-top:5px;flex-shrink:0;}

.stack-wrap{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.stack-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.ag-band{background:linear-gradient(135deg,#1e1b4b 0%,#4c1d95 100%);border-radius:var(--rlg);padding:20px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;}

.ag-icon{width:52px;height:52px;background:rgba(255,255,255,.12);border-radius:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}

.ag-body{flex:1;}

.ag-eyebrow{font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#a78bfa;margin-bottom:5px;}

.ag-title{font-size:17px;font-weight: 500;color:#fff;letter-spacing:-.03em;margin-bottom:6px;}

.ag-desc{font-size:13px;color:rgba(255,255,255,.65);line-height:1.6;}

.ag-btns{display:flex;gap:10px;flex-wrap:wrap;}

.btn-agp{font-family:var(--font);font-size:12px;font-weight:700;background:#fff;color:var(--accent);border:none;padding:9px 18px;border-radius:7px;text-decoration:none;transition:opacity .15s;white-space:nowrap;}

.btn-agp:hover{opacity:.9;}

.btn-agg{font-family:var(--font);font-size:12px;font-weight:600;background:transparent;color:rgba(255,255,255,.75);border:1.5px solid rgba(255,255,255,.25);padding:9px 18px;border-radius:7px;text-decoration:none;transition:border-color .15s,color .15s;white-space:nowrap;}

.btn-agg:hover{border-color:rgba(255,255,255,.6);color:#fff;}

.cap-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0;}

.cap-card{background:var(--bg);border:1px solid var(--border);border-radius:9px;padding:14px 16px;}

.cap-name{font-size:11px;font-weight: 500;color:var(--text);margin-bottom:4px;}

.cap-method{font-size:10px;font-family:"Courier New",monospace;color:var(--accent);margin-bottom:5px;background:var(--accent-light);padding:2px 6px;border-radius:4px;display:inline-block;}

.cap-desc{font-size:11px;color:var(--text2);line-height:1.5;}

.cap-module{font-size:9px;font-weight:700;color:var(--text3);margin-top:6px;}

@media(max-width:768px){
  .page-body{grid-template-columns:1fr;padding:24px 20px 60px;}
  .sidebar{position:static;}
  .hero-row{grid-template-columns:1fr;}
  .mod-hero{padding:36px 20px 32px;}
  .card{padding:20px 20px;}
  .anatomy-grid,.compare-grid,.orch-grid,.cap-grid{grid-template-columns:1fr;}
}

:root{--font:"Montserrat",sans-serif;--accent:#7c3aed;--accent-hover:#6d28d9;--accent-light:#f5f3ff;--accent-mid:#ede9fe;--text:#0f172a;--text2:#475569;--text3:#94a3b8;--bg:#f8fafc;--bg2:#f1f5f9;--white:#ffffff;--border:#e2e8f0;--border-dark:#cbd5e1;--green:#059669;--green-light:#ecfdf5;--amber:#d97706;--amber-light:#fffbeb;--red:#dc2626;--red-light:#fef2f2;--blue:#2563eb;--blue-light:#eff6ff;--rlg:14px;--sw:224px;--shadow:0 1px 3px rgba(15,23,42,.07),0 4px 16px rgba(15,23,42,.05);}

.trust-pyramid{margin:22px 0;display:flex;flex-direction:column;gap:0;border-radius:12px;overflow:hidden;border:1px solid var(--border);}

.trust-tier{display:flex;align-items:stretch;}

.trust-label{width:80px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight: 500;letter-spacing:.09em;text-transform:uppercase;padding:14px 8px;text-align:center;line-height:1.3;}

.trust-body{flex:1;padding:14px 18px;border-left:1px solid var(--border);}

.trust-name{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:4px;}

.trust-desc{font-size:12px;color:var(--text2);line-height:1.6;}

.trust-examples{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px;}

.trust-ex{font-size:10px;padding:2px 7px;border-radius:4px;font-weight:600;}

.trust-attack{font-size:11px;font-weight:600;margin-top:8px;padding:5px 9px;border-radius:5px;}

.inj-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0;}

.inj-card{border:1px solid var(--border);border-radius:12px;overflow:hidden;}

.inj-header{padding:13px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;}

.inj-icon{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}

.inj-title{font-size:13px;font-weight: 500;color:var(--text);}

.inj-subtitle{font-size:10px;color:var(--text3);margin-top:1px;}

.inj-body{padding:14px 16px;}

.inj-desc{font-size:12.5px;color:var(--text2);line-height:1.65;margin-bottom:10px;}

.inj-example{background:var(--bg2);border-radius:8px;padding:10px 12px;margin-top:10px;font-size:11.5px;color:var(--text2);line-height:1.55;border-left:3px solid var(--border-dark);}

.inj-quote{font-family:"Courier New",monospace;font-size:11px;color:var(--red);background:var(--red-light);padding:1px 5px;border-radius:3px;}

.chain-flow{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.cf-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.cf-steps{display:flex;flex-direction:column;gap:0;}

.cf-step{display:flex;gap:14px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.06);position:relative;}

.cf-step:last-child{border-bottom:none;}

.cf-connector{position:absolute;left:15px;top:44px;bottom:-12px;width:1px;background:rgba(124,58,237,.4);}

.cf-step:last-child .cf-connector{display:none;}

.cf-num{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight: 500;flex-shrink:0;margin-top:1px;position:relative;z-index:1;}

.cf-body{flex:1;}

.cf-name{font-size:12px;font-weight:700;color:#fff;margin-bottom:3px;}

.cf-desc{font-size:11px;color:rgba(255,255,255,.5);line-height:1.5;}

.cf-payload{font-size:10px;font-family:"Courier New",monospace;color:#fca5a5;background:rgba(239,68,68,.1);padding:4px 8px;border-radius:4px;margin-top:5px;display:inline-block;}

.incident-list{display:flex;flex-direction:column;gap:12px;margin:22px 0;}

.incident-card{border:1px solid var(--border);border-radius:12px;overflow:hidden;}

.incident-header{display:flex;align-items:flex-start;gap:14px;padding:14px 18px;border-bottom:1px solid var(--border);background:var(--bg);}

.incident-meta{flex:1;}

.incident-name{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:2px;}

.incident-year{font-size:10px;font-weight:600;color:var(--text3);}

.incident-type{font-size:9px;font-weight:700;padding:3px 8px;border-radius:5px;flex-shrink:0;margin-top:2px;}

.it-indirect{background:var(--red-light);color:var(--red);}

.it-multi{background:#fef2f2;color:#7f1d1d;}

.incident-body{padding:14px 18px;}

.incident-what{font-size:12.5px;color:var(--text2);line-height:1.65;margin-bottom:8px;}

.incident-impact{font-size:11.5px;font-weight:600;padding:6px 10px;border-radius:7px;background:var(--red-light);color:var(--red);}

.incident-lesson{font-size:11.5px;color:var(--text2);margin-top:8px;padding:8px 12px;background:var(--bg2);border-radius:7px;border-left:3px solid var(--border-dark);}

.detect-result{background:#0f172a;border-radius:10px;padding:18px 22px;margin:10px 0;}

.dr-label{font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:12px;}

.dr-fields{display:flex;flex-direction:column;gap:7px;}

.dr-field{display:flex;align-items:center;gap:12px;font-size:12px;font-family:"Courier New",monospace;}

.dr-key{color:#a78bfa;min-width:130px;}

.dr-val-true{color:#34d399;font-weight:700;}

.dr-val-false{color:#64748b;}

.dr-val-num{color:#fb923c;}

.defence-stack{display:flex;flex-direction:column;gap:0;border:1px solid var(--border);border-radius:12px;overflow:hidden;margin:22px 0;}

.ds-layer{display:flex;align-items:flex-start;gap:14px;padding:14px 18px;border-bottom:1px solid var(--border);}

.ds-layer:last-child{border-bottom:none;}

.ds-num{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight: 500;flex-shrink:0;margin-top:1px;}

.ds-body{flex:1;}

.ds-name{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:3px;}

.ds-desc{font-size:12px;color:var(--text2);line-height:1.6;}

.ds-tool{font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px;background:var(--accent-light);color:var(--accent);margin-top:5px;display:inline-block;}

.ds-catches{font-size:10px;color:var(--text3);margin-top:4px;}

@media(max-width:768px){.page-body{grid-template-columns:1fr;padding:24px 20px 60px;}.sidebar{position:static;}.hero-row{grid-template-columns:1fr;}.mod-hero{padding:36px 20px 32px;}.card{padding:24px 20px;}.inj-grid{grid-template-columns:1fr;}}

.attack-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0;}

.attack-card{border:1px solid var(--border);border-radius:12px;overflow:hidden;}

.attack-header{padding:13px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;background:var(--bg);}

.attack-icon{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}

.attack-title{font-size:13px;font-weight: 500;color:var(--text);}

.attack-badge{font-size:9px;font-weight:700;padding:2px 7px;border-radius:4px;margin-top:2px;display:inline-block;}

.attack-body{padding:14px 16px;}

.attack-desc{font-size:12.5px;color:var(--text2);line-height:1.65;margin-bottom:8px;}

.attack-ex{background:var(--bg2);border-radius:7px;padding:9px 12px;font-size:11.5px;color:var(--text2);line-height:1.55;border-left:3px solid var(--border-dark);}

.attack-ex code{font-family:"Courier New",monospace;font-size:11px;color:var(--red);background:var(--red-light);padding:1px 5px;border-radius:3px;}

.shadow-diagram{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.sd-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.sd-row{display:flex;align-items:stretch;gap:10px;margin-bottom:12px;}

.sd-node{border-radius:9px;padding:11px 14px;font-size:11px;font-weight:700;text-align:center;flex:1;}

.sd-arrow{display:flex;align-items:center;color:#475569;font-size:14px;flex-shrink:0;}

.sd-q{font-size:10px;color:rgba(255,255,255,.4);margin-bottom:10px;text-align:center;}

.deputy-flow{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.dep-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px;}

.dep-col-title{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px;}

.dep-step{border-radius:8px;padding:10px 12px;margin-bottom:8px;font-size:11px;line-height:1.5;}

.dep-arrow-right{position:relative;text-align:center;color:#64748b;font-size:11px;margin:8px 0;}

.mcp-diagram{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.mcp-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.mcp-layers{display:flex;flex-direction:column;gap:0;}

.mcp-layer{border-radius:0;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.06);display:flex;align-items:flex-start;gap:12px;}

.mcp-layer:first-child{border-radius:8px 8px 0 0;}

.mcp-layer:last-child{border-bottom:none;border-radius:0 0 8px 8px;}

.mcp-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;margin-top:4px;}

.mcp-body{flex:1;}

.mcp-name{font-size:12px;font-weight:700;color:#fff;margin-bottom:2px;}

.mcp-desc{font-size:11px;color:rgba(255,255,255,.5);line-height:1.5;}

.mcp-risk{font-size:9px;font-weight:700;padding:2px 7px;border-radius:4px;margin-top:4px;display:inline-block;}

.ssrf-diagram{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.ssrf-zones{display:grid;grid-template-columns:1fr 1fr;gap:12px;}

.ssrf-zone{border-radius:10px;border:1.5px dashed;padding:14px;}

.ssrf-zone-title{font-size:10px;font-weight: 500;letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px;}

.ssrf-host{border-radius:7px;padding:8px 10px;margin-bottom:6px;font-size:11px;font-weight:600;}

.ssrf-vs{display:flex;align-items:center;justify-content:center;font-size:18px;color:#64748b;}

.dsl-table{width:100%;border-collapse:separate;border-spacing:0;border-radius:10px;overflow:hidden;border:1px solid var(--border);margin:22px 0;}

.dsl-table th{background:var(--bg2);padding:10px 14px;font-size:11px;font-weight:700;color:var(--text2);text-align:left;border-bottom:1px solid var(--border);}

.dsl-table td{padding:10px 14px;font-size:12px;color:var(--text2);border-bottom:1px solid var(--border);vertical-align:top;}

.dsl-table tr:last-child td{border-bottom:none;}

.dsl-table code{font-family:"Courier New",monospace;font-size:11px;background:var(--bg2);padding:1px 5px;border-radius:3px;color:var(--accent);}

.policy-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin:22px 0;}

.policy-pill{border-radius:12px;overflow:hidden;border:1px solid var(--border);}

.policy-pill-header{padding:13px 16px;border-bottom:1px solid var(--border);}

.policy-pill-icon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;margin-bottom:8px;}

.policy-pill-name{font-size:13px;font-weight: 500;color:var(--text);}

.policy-pill-sub{font-size:10px;color:var(--text3);margin-top:2px;}

.policy-pill-body{padding:14px 16px;}

.policy-rule{font-size:11px;color:var(--text2);line-height:1.6;margin-bottom:6px;display:flex;gap:6px;}

.policy-rule:last-child{margin-bottom:0;}

.rule-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;margin-top:6px;}

.checklist{display:flex;flex-direction:column;gap:0;border:1px solid var(--border);border-radius:12px;overflow:hidden;margin:22px 0;}

.cl-group{border-bottom:1px solid var(--border);}

.cl-group:last-child{border-bottom:none;}

.cl-group-header{padding:11px 16px;background:var(--bg2);font-size:11px;font-weight: 500;color:var(--text);display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--border);}

.cl-items{display:flex;flex-direction:column;gap:0;}

.cl-item{display:flex;align-items:flex-start;gap:10px;padding:10px 16px;border-bottom:1px solid var(--border);font-size:12px;color:var(--text2);line-height:1.55;}

.cl-item:last-child{border-bottom:none;}

.cl-check{width:18px;height:18px;border:1.5px solid var(--border-dark);border-radius:4px;flex-shrink:0;margin-top:1px;display:flex;align-items:center;justify-content:center;background:var(--white);}

@media(max-width:768px){.page-body{grid-template-columns:1fr;padding:24px 20px 60px;}.sidebar{position:static;}.hero-row{grid-template-columns:1fr;}.mod-hero{padding:36px 20px 32px;}.card{padding:24px 20px;}.attack-grid,.policy-grid,.ssrf-zones,.dep-cols{grid-template-columns:1fr;}}

.guard-pipeline{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.gp-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.gp-row{display:flex;align-items:stretch;gap:0;border-radius:10px;overflow:hidden;border:1px solid rgba(255,255,255,.08);}

.gp-block{flex:1;padding:14px 16px;border-right:1px solid rgba(255,255,255,.08);position:relative;}

.gp-block:last-child{border-right:none;}

.gp-label{font-size:9px;font-weight: 500;letter-spacing:.09em;text-transform:uppercase;margin-bottom:6px;}

.gp-name{font-size:12px;font-weight:700;color:#fff;margin-bottom:4px;}

.gp-checks{font-size:10px;color:rgba(255,255,255,.45);line-height:1.6;}

.gp-arrow{display:flex;align-items:center;padding:0 6px;color:#475569;font-size:14px;flex-shrink:0;}

.action-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:18px 0;}

.action-card{border-radius:9px;padding:12px 10px;text-align:center;border:1px solid var(--border);}

.action-name{font-size:11px;font-weight: 500;font-family:"Courier New",monospace;margin-bottom:4px;}

.action-desc{font-size:10px;color:var(--text2);line-height:1.5;}

.entity-chips{display:flex;gap:5px;flex-wrap:wrap;margin:14px 0;}

.entity-chip{font-size:10px;font-weight:700;padding:3px 8px;border-radius:5px;background:var(--bg2);color:var(--text2);border:1px solid var(--border);font-family:"Courier New",monospace;}

.hal-pairs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0;}

.hal-pair{background:#0f172a;border-radius:10px;padding:14px 16px;border:1px solid rgba(255,255,255,.08);}

.hp-label{font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#64748b;margin-bottom:8px;}

.hp-row{display:flex;align-items:center;gap:10px;margin-bottom:6px;}

.hp-key{font-size:11px;font-family:"Courier New",monospace;color:#a78bfa;min-width:110px;}

.hp-val{font-size:11px;font-family:"Courier New",monospace;}

.rag-compare{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0;}

.rag-card{border:1px solid var(--border);border-radius:12px;overflow:hidden;}

.rag-header{padding:13px 16px;border-bottom:1px solid var(--border);}

.rag-title{font-size:13px;font-weight: 500;color:var(--text);}

.rag-when{font-size:10px;color:var(--text3);margin-top:2px;}

.rag-body{padding:14px 16px;}

.rag-row{display:flex;gap:8px;font-size:12px;color:var(--text2);margin-bottom:7px;line-height:1.5;}

.rag-row:last-child{margin-bottom:0;}

.rag-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;margin-top:6px;}

.rag-metrics{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px;}

.rag-metric{font-size:10px;font-weight:600;padding:2px 7px;border-radius:5px;border:1px solid var(--border);}

.safety-response{background:#0f172a;border-radius:10px;padding:18px 22px;margin:16px 0;}

.sr-label{font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:12px;}

.sr-json{font-family:"Courier New",monospace;font-size:11px;line-height:1.8;color:#e2e8f0;}

.sj-key{color:#a78bfa;}

.sj-str{color:#6ee7b7;}

.sj-bool-t{color:#34d399;font-weight:700;}

.sj-bool-f{color:#64748b;}

.sj-arr{color:#fbbf24;}

.sj-num{color:#fb923c;}

.co-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0;}

.co-card{border:1px solid var(--border);border-radius:9px;padding:12px 14px;}

.co-name{font-size:11px;font-weight: 500;color:var(--text);font-family:"Courier New",monospace;margin-bottom:4px;}

.co-desc{font-size:10.5px;color:var(--text2);line-height:1.5;}

.co-note{font-size:10px;color:var(--text3);margin-top:4px;}

.pipeline-flow{display:flex;flex-direction:column;gap:0;border:1px solid var(--border);border-radius:12px;overflow:hidden;margin:22px 0;}

.pf-step{display:flex;align-items:flex-start;gap:14px;padding:14px 18px;border-bottom:1px solid var(--border);}

.pf-step:last-child{border-bottom:none;}

.pf-num{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight: 500;flex-shrink:0;margin-top:1px;}

.pf-body{flex:1;}

.pf-name{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:3px;}

.pf-desc{font-size:12px;color:var(--text2);line-height:1.6;}

.pf-method{font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px;background:var(--accent-light);color:var(--accent);margin-top:4px;display:inline-block;font-family:"Courier New",monospace;}

.pf-when{font-size:10px;color:var(--text3);margin-top:3px;}

@media(max-width:768px){.page-body{grid-template-columns:1fr;padding:24px 20px 60px;}.sidebar{position:static;}.hero-row{grid-template-columns:1fr;}.mod-hero{padding:36px 20px 32px;}.card{padding:24px 20px;}.action-grid{grid-template-columns:repeat(3,1fr);}.hal-pairs,.rag-compare,.co-grid{grid-template-columns:1fr;}}

.id-compare{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0;}

.id-col{border-radius:12px;padding:18px;border:1px solid var(--border);}

.id-col-title{font-size:12px;font-weight: 500;margin-bottom:12px;display:flex;align-items:center;gap:8px;}

.id-row{display:flex;gap:8px;margin-bottom:9px;font-size:12.5px;color:var(--text2);line-height:1.5;}

.id-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;margin-top:6px;}

.id-badge{font-size:9px;font-weight:700;padding:2px 7px;border-radius:4px;margin-left:auto;flex-shrink:0;}

.cred-types{display:flex;flex-direction:column;gap:0;border:1px solid var(--border);border-radius:12px;overflow:hidden;margin:22px 0;}

.cred-row{display:flex;align-items:stretch;}

.cred-type-label{width:110px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight: 500;letter-spacing:.07em;text-transform:uppercase;text-align:center;padding:14px 8px;line-height:1.3;}

.cred-body{flex:1;padding:14px 18px;border-left:1px solid var(--border);}

.cred-name{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:4px;}

.cred-desc{font-size:12px;color:var(--text2);line-height:1.6;}

.cred-risk{font-size:11px;font-weight:600;margin-top:7px;padding:4px 9px;border-radius:5px;display:inline-block;}

.blast-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0;}

.blast-card{border-radius:12px;overflow:hidden;border:1px solid var(--border);}

.blast-header{padding:12px 16px;border-bottom:1px solid var(--border);font-size:12px;font-weight: 500;}

.blast-diagram{padding:16px;background:var(--bg);}

.blast-center{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight: 500;text-align:center;line-height:1.2;margin:0 auto 12px;}

.blast-ring{border-radius:8px;padding:7px 10px;margin-bottom:5px;font-size:10.5px;font-weight:600;text-align:center;}

.blast-ring:last-child{margin-bottom:0;}

.zt-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:22px 0;}

.zt-card{border:1px solid var(--border);border-radius:11px;padding:16px;position:relative;overflow:hidden;}

.zt-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;}

.ztc-1::before{background:var(--accent);}

.ztc-2::before{background:var(--blue);}

.ztc-3::before{background:var(--green);}

.ztc-4::before{background:var(--amber);}

.zt-num{font-size:9px;font-weight: 500;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);margin-bottom:6px;}

.zt-title{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:6px;}

.zt-desc{font-size:12px;color:var(--text2);line-height:1.6;}

.zt-example{font-size:11px;margin-top:8px;padding:6px 9px;border-radius:6px;font-weight:600;}

.agentid-arch{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.arch-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.arch-planes{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px;}

.arch-plane{border-radius:10px;padding:14px 16px;}

.arch-plane-title{font-size:12px;font-weight: 500;margin-bottom:8px;}

.arch-function{display:flex;gap:7px;font-size:11px;line-height:1.5;margin-bottom:5px;}

.arch-function:last-child{margin-bottom:0;}

.arch-dot{width:4px;height:4px;border-radius:50%;flex-shrink:0;margin-top:6px;}

.token-anatomy{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.ta-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:14px;}

.ta-fields{display:flex;flex-direction:column;gap:7px;}

.ta-field{display:flex;align-items:flex-start;gap:12px;padding:9px 12px;border-radius:8px;}

.ta-key{font-size:11px;font-family:"Courier New",monospace;min-width:130px;flex-shrink:0;}

.ta-val{font-size:11px;line-height:1.5;}

.example-flow{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.ef-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.ef-steps{display:flex;flex-direction:column;gap:0;}

.ef-step{display:flex;gap:12px;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.06);position:relative;}

.ef-step:last-child{border-bottom:none;}

.ef-connector{position:absolute;left:14px;top:42px;bottom:-11px;width:1px;background:rgba(124,58,237,.4);}

.ef-step:last-child .ef-connector{display:none;}

.ef-num{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight: 500;flex-shrink:0;position:relative;z-index:1;}

.ef-body{flex:1;}

.ef-name{font-size:12px;font-weight:700;color:#fff;margin-bottom:3px;}

.ef-desc{font-size:11px;color:rgba(255,255,255,.5);line-height:1.5;}

.ef-note{font-size:10px;font-family:"Courier New",monospace;color:#a78bfa;background:rgba(124,58,237,.1);padding:3px 8px;border-radius:4px;margin-top:4px;display:inline-block;}

.antipattern-list{display:flex;flex-direction:column;gap:10px;margin:22px 0;}

.ap-item{border:1px solid var(--border);border-radius:11px;overflow:hidden;}

.ap-header{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--bg);}

.ap-icon{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}

.ap-name{font-size:13px;font-weight: 500;color:var(--text);flex:1;}

.ap-body{display:grid;grid-template-columns:1fr 1fr;gap:0;}

.ap-col{padding:12px 16px;}

.ap-col:first-child{border-right:1px solid var(--border);}

.ap-col-label{font-size:9px;font-weight: 500;letter-spacing:.08em;text-transform:uppercase;margin-bottom:7px;}

.ap-text{font-size:12px;color:var(--text2);line-height:1.6;}

.adoption-path{display:flex;flex-direction:column;gap:0;border:1px solid var(--border);border-radius:12px;overflow:hidden;margin:22px 0;}

.adopt-step{display:flex;align-items:flex-start;gap:14px;padding:14px 18px;border-bottom:1px solid var(--border);}

.adopt-step:last-child{border-bottom:none;}

.adopt-num{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight: 500;flex-shrink:0;margin-top:1px;}

.adopt-body{flex:1;}

.adopt-name{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:3px;}

.adopt-desc{font-size:12px;color:var(--text2);line-height:1.6;}

.adopt-impact{font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px;margin-top:5px;display:inline-block;}

.cl-check{width:18px;height:18px;border:1.5px solid var(--border-dark);border-radius:4px;flex-shrink:0;margin-top:1px;background:var(--white);}

@media(max-width:768px){.page-body{grid-template-columns:1fr;padding:24px 20px 60px;}.sidebar{position:static;}.hero-row{grid-template-columns:1fr;}.mod-hero{padding:36px 20px 32px;}.card{padding:24px 20px;}.id-compare,.blast-grid,.zt-grid,.arch-planes,.ap-body{grid-template-columns:1fr;}}

:root{--font:"Montserrat",sans-serif;--accent:#7c3aed;--accent-hover:#6d28d9;--accent-light:#f5f3ff;--accent-mid:#ede9fe;--text:#0f172a;--text2:#475569;--text3:#94a3b8;--bg:#f8fafc;--bg2:#f1f5f9;--white:#ffffff;--border:#e2e8f0;--border-dark:#cbd5e1;--green:#059669;--green-light:#ecfdf5;--amber:#d97706;--amber-light:#fffbeb;--red:#dc2626;--red-light:#fef2f2;--blue:#2563eb;--blue-light:#eff6ff;--teal:#0891b2;--teal-light:#ecfeff;--rlg:14px;--sw:224px;--shadow:0 1px 3px rgba(15,23,42,.07),0 4px 16px rgba(15,23,42,.05);}

.mod-title{font-size:clamp(28px,4vw,46px);font-weight:900;letter-spacing:-.04em;color:#fff;line-height:1.08;margin-bottom:14px;}

.spectrum-diagram{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.spec-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.spec-row{display:grid;gap:0;align-items:stretch;border-radius:10px;overflow:hidden;border:1px solid rgba(255,255,255,.08);}

.spec-col{padding:16px 18px;}

.spec-divider{display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.04);font-size:18px;color:#475569;}

.spec-label{font-size:9px;font-weight: 500;letter-spacing:.09em;text-transform:uppercase;margin-bottom:8px;}

.spec-item{font-size:11px;line-height:1.6;margin-bottom:5px;display:flex;gap:6px;}

.spec-dot{width:4px;height:4px;border-radius:50%;flex-shrink:0;margin-top:6px;}

.pipeline{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.pipeline-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.pipeline-stages{display:flex;flex-direction:column;gap:0;}

.ps{display:flex;align-items:stretch;border-bottom:1px solid rgba(255,255,255,.06);}

.ps:last-child{border-bottom:none;}

.ps-num{width:36px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight: 500;border-right:1px solid rgba(255,255,255,.06);}

.ps-stage{flex:0 0 130px;padding:11px 14px;border-right:1px solid rgba(255,255,255,.06);display:flex;align-items:center;}

.ps-stage-name{font-size:11px;font-weight:700;}

.ps-attack{flex:1;padding:11px 14px;}

.ps-attack-text{font-size:11px;color:rgba(255,255,255,.55);line-height:1.5;}

.ps-tag{font-size:9px;font-weight:700;padding:2px 6px;border-radius:4px;margin-top:5px;display:inline-block;}

.attack-taxonomy{display:flex;flex-direction:column;gap:12px;margin:22px 0;}

.atk{border:1px solid var(--border);border-radius:12px;overflow:hidden;}

.atk-header{display:flex;align-items:center;gap:12px;padding:13px 18px;border-bottom:1px solid var(--border);background:var(--bg);}

.atk-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}

.atk-meta{flex:1;}

.atk-name{font-size:13px;font-weight: 500;color:var(--text);}

.atk-sub{font-size:10px;color:var(--text3);margin-top:1px;}

.atk-atlas{font-size:9px;font-weight:700;padding:2px 7px;border-radius:4px;background:var(--bg2);color:var(--text2);font-family:"Courier New",monospace;}

.atk-body{padding:14px 18px;}

.atk-desc{font-size:12.5px;color:var(--text2);line-height:1.7;margin-bottom:10px;}

.atk-variants{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;}

.atk-variant{font-size:10px;font-weight:700;padding:3px 8px;border-radius:5px;border:1px solid var(--border);}

.atk-cite{font-size:10px;color:var(--text3);margin-top:8px;font-style:italic;}

.adv-example{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.adv-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.adv-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}

.adv-box{flex:1;min-width:120px;border-radius:10px;padding:14px;text-align:center;}

.adv-box-label{font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px;}

.adv-box-pred{font-size:12px;font-weight: 500;margin-top:8px;}

.adv-box-conf{font-size:10px;margin-top:3px;}

.adv-op{font-size:18px;color:#64748b;flex-shrink:0;}

.adv-noise-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:2px;padding:10px;border-radius:8px;background:rgba(255,255,255,.04);}

.adv-pixel{height:10px;border-radius:1px;}

.wb-bb{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0;}

.wbbb-card{border:1px solid var(--border);border-radius:11px;overflow:hidden;}

.wbbb-header{padding:12px 16px;border-bottom:1px solid var(--border);}

.wbbb-title{font-size:12px;font-weight: 500;color:var(--text);}

.wbbb-body{padding:13px 16px;}

.wbbb-row{font-size:12px;color:var(--text2);line-height:1.6;margin-bottom:6px;display:flex;gap:7px;}

.wbbb-dot{width:4px;height:4px;border-radius:50%;flex-shrink:0;margin-top:7px;}

.mi-diagram{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.mi-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:14px;}

.mi-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px;}

.mi-col-label{font-size:10px;font-weight: 500;letter-spacing:.07em;text-transform:uppercase;margin-bottom:8px;}

.mi-record{border-radius:7px;padding:9px 12px;margin-bottom:6px;font-size:11px;line-height:1.5;}

.sc-incidents{display:flex;flex-direction:column;gap:10px;margin:22px 0;}

.sci{display:flex;gap:14px;padding:16px;border:1px solid var(--border);border-radius:11px;align-items:flex-start;}

.sci-year{flex-shrink:0;width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight: 500;}

.sci-body{flex:1;}

.sci-name{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:4px;}

.sci-desc{font-size:12.5px;color:var(--text2);line-height:1.65;}

.sci-detail{font-size:11px;color:var(--text3);margin-top:5px;}

.agent-impacts{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin:22px 0;}

.ai-card{border:1px solid var(--border);border-radius:11px;padding:16px;}

.ai-icon{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;margin-bottom:10px;}

.ai-title{font-size:12px;font-weight: 500;color:var(--text);margin-bottom:6px;}

.ai-desc{font-size:11.5px;color:var(--text2);line-height:1.6;}

.atlas-table{width:100%;border-collapse:separate;border-spacing:0;border-radius:10px;overflow:hidden;border:1px solid var(--border);margin:22px 0;}

.atlas-table th{background:var(--bg2);padding:10px 14px;font-size:11px;font-weight:700;color:var(--text2);text-align:left;border-bottom:1px solid var(--border);}

.atlas-table td{padding:10px 14px;font-size:12px;color:var(--text2);border-bottom:1px solid var(--border);vertical-align:top;}

.atlas-table tr:last-child td{border-bottom:none;}

.atlas-table code{font-family:"Courier New",monospace;font-size:11px;background:var(--bg2);padding:1px 5px;border-radius:3px;color:var(--accent);}

.atlas-table td:first-child{font-family:"Courier New",monospace;font-size:11px;color:var(--accent);white-space:nowrap;}

.path-c{display:flex;flex-direction:column;gap:0;border:1px solid var(--border);border-radius:12px;overflow:hidden;margin:22px 0;}

.pc-row{display:flex;align-items:center;gap:14px;padding:13px 18px;border-bottom:1px solid var(--border);}

.pc-row:last-child{border-bottom:none;}

.pc-num{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight: 500;flex-shrink:0;}

.pc-name{font-size:13px;font-weight: 500;color:var(--text);flex:1;}

.pc-row .pc-desc{font-size:11.5px;flex:2; color:var(--text)!important;}

.pc-tag{font-size:9px;font-weight:700;padding:2px 7px;border-radius:4px;background:var(--bg2);color:var(--text3);flex-shrink:0;}

@media(max-width:768px){.page-body{grid-template-columns:1fr;padding:24px 20px 60px;}.sidebar{position:static;}.hero-row{grid-template-columns:1fr;}.mod-hero{padding:36px 20px 32px;}.card{padding:24px 20px;}.spec-row,.wb-bb,.mi-cols,.agent-impacts,.path-c .pc-row{flex-direction:column;}.agent-impacts{grid-template-columns:1fr;}.wb-bb{grid-template-columns:1fr;}}

.cite-tag{font-size:10px;font-weight:700;color:var(--text3);font-family:"Courier New",monospace;background:var(--bg2);padding:1px 6px;border-radius:4px;border:1px solid var(--border);}

.backdoor-compare{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0;}

.bc-col{background:#0f172a;border-radius:12px;padding:18px;border:1px solid rgba(255,255,255,.08);}

.bc-col-title{font-size:11px;font-weight: 500;letter-spacing:.07em;text-transform:uppercase;margin-bottom:14px;display:flex;align-items:center;gap:8px;}

.bc-step{display:flex;align-items:flex-start;gap:9px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.05);}

.bc-step:last-child{border-bottom:none;}

.bc-step-num{width:22px;height:22px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight: 500;flex-shrink:0;margin-top:1px;}

.bc-step-text{font-size:11px;color:rgba(255,255,255,.55);line-height:1.5;}

.bc-step-highlight{color:rgba(255,255,255,.85);font-weight:600;}

.trigger-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:22px 0;}

.trigger-card{border-radius:11px;border:1px solid var(--border);overflow:hidden;}

.trigger-header{padding:14px 16px;border-bottom:1px solid var(--border);}

.trigger-icon-row{display:flex;align-items:center;gap:10px;margin-bottom:6px;}

.trigger-icon{width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}

.trigger-name{font-size:13px;font-weight: 500;color:var(--text);}

.trigger-detect{font-size:10px;font-weight:700;padding:2px 7px;border-radius:4px;margin-top:3px;display:inline-block;}

.trigger-body{padding:14px 16px;}

.trigger-desc{font-size:12.5px;color:var(--text2);line-height:1.65;margin-bottom:9px;}

.trigger-example{font-size:11.5px;background:var(--bg2);border-radius:7px;padding:9px 12px;border-left:3px solid var(--border-dark);color:var(--text2);line-height:1.55;}

.clean-label-flow{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.clf-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.clf-compare{display:grid;grid-template-columns:1fr 1fr;gap:14px;}

.clf-col{border-radius:9px;padding:14px;}

.clf-col-title{font-size:10px;font-weight: 500;letter-spacing:.07em;text-transform:uppercase;margin-bottom:10px;}

.clf-step{font-size:11px;line-height:1.55;margin-bottom:7px;display:flex;gap:7px;}

.clf-step:last-child{margin-bottom:0;}

.clf-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;margin-top:5px;}

.clf-verdict{margin-top:12px;padding:9px 12px;border-radius:7px;font-size:11px;font-weight:700;line-height:1.5;}

.llm-poison-flow{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.lpf-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.lpf-stages{display:flex;flex-direction:column;gap:0;}

.lpf-stage{display:flex;align-items:flex-start;gap:12px;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.05);}

.lpf-stage:last-child{border-bottom:none;}

.lpf-stage-icon{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:12px;font-weight: 500;}

.lpf-stage-body{flex:1;}

.lpf-stage-name{font-size:12px;font-weight:700;color:#fff;margin-bottom:2px;}

.lpf-stage-desc{font-size:11px;color:rgba(255,255,255,.5);line-height:1.5;}

.lpf-poison{font-size:10px;font-weight:700;padding:2px 7px;border-radius:4px;margin-top:4px;display:inline-block;}

.eval-gap{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.eg-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.eg-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px;}

.eg-col{border-radius:9px;padding:14px;}

.eg-col-title{font-size:11px;font-weight: 500;margin-bottom:10px;}

.eg-metric{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.05);font-size:11px;}

.eg-metric:last-child{border-bottom:none;}

.eg-metric-name{color:rgba(255,255,255,.6);}

.eg-metric-val{font-weight:700;font-family:"Courier New",monospace;font-size:12px;}

.eg-conclusion{margin-top:12px;padding:10px 12px;border-radius:7px;font-size:11px;font-weight:700;}

.detection-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:22px 0;}

.det-card{border:1px solid var(--border);border-radius:11px;overflow:hidden;}

.det-header{padding:13px 16px;border-bottom:1px solid var(--border);}

.det-name{font-size:13px;font-weight: 500;color:var(--text);}

.det-cite{font-size:10px;color:var(--text3);margin-top:2px;font-family:"Courier New",monospace;}

.det-stage{font-size:9px;font-weight:700;padding:2px 7px;border-radius:4px;margin-top:4px;display:inline-block;}

.det-body{padding:13px 16px;}

.det-how{font-size:12.5px;color:var(--text2);line-height:1.65;margin-bottom:9px;}

.det-limit{font-size:11.5px;background:var(--bg2);border-radius:6px;padding:8px 10px;border-left:3px solid var(--border-dark);color:var(--text2);}

.dp-diagram{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.dp-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.dp-tradeoff{display:flex;flex-direction:column;gap:8px;}

.dp-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.08);}

.dp-epsilon{font-family:"Courier New",monospace;font-size:13px;font-weight: 500;min-width:80px;flex-shrink:0;}

.dp-bar-wrap{flex:1;height:8px;background:rgba(255,255,255,.06);border-radius:4px;overflow:hidden;}

.dp-bar{height:100%;border-radius:4px;}

.dp-labels{display:flex;justify-content:space-between;font-size:10px;color:rgba(255,255,255,.4);margin-top:5px;}

.dp-desc{font-size:11px;min-width:160px;flex-shrink:0;line-height:1.4;}

.provenance-chain{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.pc-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.pc-steps{display:flex;gap:0;align-items:stretch;flex-wrap:wrap;}

.pc-step{flex:1;min-width:110px;}

.pc-step-box{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:11px 12px;height:100%;}

.pc-step-num{font-size:9px;font-weight: 500;letter-spacing:.07em;text-transform:uppercase;margin-bottom:5px;}

.pc-step-name{font-size:11px;font-weight:700;color:#fff;margin-bottom:3px;}

.pc-step-desc{font-size:10px;color:rgba(255,255,255,.4);line-height:1.5;}

.pc-arrow{display:flex;align-items:center;padding:0 5px;color:#475569;font-size:14px;flex-shrink:0;}

.paper-ref{display:inline-flex;align-items:center;gap:5px;background:var(--bg2);border:1px solid var(--border);border-radius:6px;padding:3px 8px;font-size:11px;color:var(--text2);font-weight:600;margin-top:6px;}

.paper-ref-year{font-family:"Courier New",monospace;color:var(--text3);font-size:10px;}

@media(max-width:768px){.page-body{grid-template-columns:1fr;padding:24px 20px 60px;}.sidebar{position:static;}.hero-row{grid-template-columns:1fr;}.mod-hero{padding:36px 20px 32px;}.card{padding:24px 20px;}.backdoor-compare,.trigger-grid,.clf-compare,.eg-cols,.detection-grid,.dp-diagram .dp-row{flex-direction:column;}.trigger-grid,.backdoor-compare,.eg-cols,.detection-grid{grid-template-columns:1fr;}.pc-steps{flex-direction:column;}}

.mn{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:middle;justify-content:center;font-size:10px;font-weight: 500;flex-shrink:0;}

.fgsm-formula{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.ff-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.ff-eq{text-align:center;font-family:"Courier New",monospace;font-size:15px;font-weight:700;color:#e2e8f0;padding:14px;background:rgba(255,255,255,.04);border-radius:8px;margin-bottom:16px;letter-spacing:.03em;}

.ff-terms{display:flex;gap:10px;flex-wrap:wrap;}

.ff-term{flex:1;min-width:120px;border-radius:8px;padding:11px 13px;border:1px solid rgba(255,255,255,.1);}

.ff-term-sym{font-family:"Courier New",monospace;font-size:13px;font-weight: 500;margin-bottom:5px;}

.ff-term-name{font-size:11px;font-weight:700;color:#fff;margin-bottom:3px;}

.ff-term-desc{font-size:10px;color:rgba(255,255,255,.45);line-height:1.5;}

.landscape-viz{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.lv-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:14px;}

.lv-content{display:flex;gap:16px;align-items:flex-start;}

.lv-diagram{flex:1;background:rgba(255,255,255,.03);border-radius:9px;padding:16px;border:1px solid rgba(255,255,255,.08);min-height:120px;position:relative;overflow:hidden;}

.lv-description{flex:1;display:flex;flex-direction:column;gap:8px;}

.lv-point{display:flex;gap:9px;font-size:11px;line-height:1.5;}

.lv-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:3px;}

.epsilon-visual{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.ev-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:14px;}

.ev-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;}

.ev-circle-wrap{display:flex;flex-direction:column;align-items:center;gap:8px;}

.ev-label{font-size:10px;color:rgba(255,255,255,.45);text-align:center;font-weight:600;}

.attack-compare-table{width:100%;border-collapse:separate;border-spacing:0;border-radius:10px;overflow:hidden;border:1px solid var(--border);margin:22px 0;}

.act-th{background:var(--bg2);padding:10px 14px;font-size:11px;font-weight:700;color:var(--text2);text-align:left;border-bottom:1px solid var(--border);}

.act-td{padding:10px 14px;font-size:12px;color:var(--text2);border-bottom:1px solid var(--border);vertical-align:top;}

.attack-compare-table tr:last-child td{border-bottom:none;}

.attack-compare-table tr:hover td{background:var(--bg);}

.attack-tag{font-size:10px;font-weight:700;padding:2px 7px;border-radius:4px;white-space:nowrap;}

.pgd-diagram{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.pgd-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.pgd-steps{display:flex;flex-direction:column;gap:0;}

.pgd-step{display:flex;align-items:flex-start;gap:11px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.05);}

.pgd-step:last-child{border-bottom:none;}

.pgd-step-num{width:24px;height:24px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight: 500;flex-shrink:0;margin-top:1px;}

.pgd-step-body{flex:1;}

.pgd-step-name{font-size:12px;font-weight:700;color:#fff;margin-bottom:2px;}

.pgd-step-desc{font-size:11px;color:rgba(255,255,255,.5);line-height:1.5;}

.pgd-formula{font-family:"Courier New",monospace;font-size:10px;color:#a78bfa;background:rgba(124,58,237,.1);padding:3px 8px;border-radius:4px;margin-top:4px;display:inline-block;}

.cw-objective{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.cw-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:14px;}

.cw-eq{text-align:center;font-family:"Courier New",monospace;font-size:14px;font-weight:700;color:#e2e8f0;padding:14px;background:rgba(255,255,255,.04);border-radius:8px;margin-bottom:14px;}

.cw-terms{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;}

.cw-term{border-radius:8px;padding:11px 12px;border:1px solid rgba(255,255,255,.1);text-align:center;}

.cw-term-sym{font-family:"Courier New",monospace;font-size:14px;font-weight: 500;margin-bottom:5px;}

.cw-term-desc{font-size:10px;color:rgba(255,255,255,.45);line-height:1.5;}

.physical-flow{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.pf-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.pf-steps{display:flex;gap:0;align-items:stretch;flex-wrap:wrap;}

.pf-step{flex:1;min-width:100px;}

.pf-step-box{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:11px 12px;height:100%;}

.pf-step-num{font-size:9px;font-weight: 500;letter-spacing:.07em;text-transform:uppercase;margin-bottom:5px;}

.pf-step-name{font-size:11px;font-weight:700;color:#fff;margin-bottom:3px;}

.pf-step-desc{font-size:10px;color:rgba(255,255,255,.4);line-height:1.5;}

.pf-arrow{display:flex;align-items:center;padding:0 5px;color:#475569;font-size:14px;flex-shrink:0;}

.nlp-levels{display:flex;flex-direction:column;gap:10px;margin:22px 0;}

.nlp-level{border:1px solid var(--border);border-radius:11px;overflow:hidden;}

.nlp-level-header{display:flex;align-items:center;gap:12px;padding:13px 16px;border-bottom:1px solid var(--border);background:var(--bg);}

.nlp-level-icon{width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-weight: 500;font-size:12px;}

.nlp-level-name{font-size:13px;font-weight: 500;color:var(--text);}

.nlp-level-cite{font-size:10px;color:var(--text3);margin-top:2px;font-family:"Courier New",monospace;}

.nlp-level-body{padding:13px 16px;}

.nlp-level-desc{font-size:12.5px;color:var(--text2);line-height:1.65;margin-bottom:9px;}

.nlp-example{background:var(--bg2);border-radius:7px;padding:9px 12px;font-size:12px;line-height:1.6;border-left:3px solid var(--border-dark);}

.nlp-example .orig{color:var(--green);}

.nlp-example .adv{color:var(--red);}

.transfer-diagram{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.td-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.td-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;}

.td-box{border-radius:9px;padding:12px 14px;text-align:center;min-width:110px;}

.td-box-label{font-size:9px;font-weight: 500;letter-spacing:.08em;text-transform:uppercase;margin-bottom:5px;}

.td-box-name{font-size:11px;font-weight:700;}

.td-box-detail{font-size:10px;margin-top:3px;line-height:1.4;}

.td-arrow{color:#475569;font-size:16px;flex-shrink:0;}

.transfer-rates{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px;}

.tr-rate{border-radius:8px;padding:10px 12px;border:1px solid rgba(255,255,255,.1);text-align:center;}

.tr-rate-val{font-size:18px;font-weight:900;margin-bottom:3px;}

.tr-rate-desc{font-size:10px;color:rgba(255,255,255,.4);line-height:1.4;}

.at-loop{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.at-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.at-steps{display:flex;gap:0;align-items:stretch;flex-wrap:wrap;}

.at-step{flex:1;min-width:110px;}

.at-step-box{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:11px 12px;height:100%;}

.at-step-num{font-size:9px;font-weight: 500;letter-spacing:.07em;text-transform:uppercase;margin-bottom:5px;}

.at-step-name{font-size:11px;font-weight:700;color:#fff;margin-bottom:3px;}

.at-step-desc{font-size:10px;color:rgba(255,255,255,.4);line-height:1.5;}

.at-arrow{display:flex;align-items:center;padding:0 5px;color:#475569;font-size:14px;flex-shrink:0;}

.at-tradeoff{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;}

.at-col{border-radius:8px;padding:11px 13px;border:1px solid rgba(255,255,255,.1);}

.at-col-title{font-size:10px;font-weight: 500;letter-spacing:.07em;text-transform:uppercase;margin-bottom:7px;}

.at-col-val{font-size:14px;font-weight:900;margin-bottom:3px;}

.at-col-desc{font-size:10px;color:rgba(255,255,255,.4);line-height:1.4;}

.smooth-diagram{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.sd-flow{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px;}

.sd-node{border-radius:9px;padding:12px 14px;text-align:center;min-width:110px;}

.sd-node-label{font-size:9px;font-weight: 500;letter-spacing:.07em;text-transform:uppercase;margin-bottom:4px;}

.sd-node-name{font-size:11px;font-weight:700;}

.sd-node-detail{font-size:10px;margin-top:3px;line-height:1.4;}

.sd-arrow{color:#475569;font-size:16px;flex-shrink:0;}

.sd-cert{background:rgba(5,150,105,.12);border:1px solid rgba(5,150,105,.3);border-radius:8px;padding:12px 14px;margin-top:8px;}

.sd-cert-title{font-size:11px;font-weight: 500;color:#34d399;margin-bottom:5px;}

.sd-cert-formula{font-family:"Courier New",monospace;font-size:12px;color:#e2e8f0;margin-bottom:5px;}

.sd-cert-desc{font-size:11px;color:rgba(255,255,255,.5);line-height:1.5;}

.rob-compare{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0;}

.rob-col{border:1px solid var(--border);border-radius:11px;overflow:hidden;}

.rob-col-header{padding:13px 16px;border-bottom:1px solid var(--border);}

.rob-col-title{font-size:13px;font-weight: 500;color:var(--text);}

.rob-col-sub{font-size:10px;color:var(--text3);margin-top:2px;}

.rob-col-body{padding:13px 16px;}

.rob-prop{display:flex;gap:9px;font-size:12px;color:var(--text2);margin-bottom:8px;line-height:1.55;}

.rob-prop:last-child{margin-bottom:0;}

.rob-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;margin-top:6px;}

.robustbench-table{width:100%;border-collapse:separate;border-spacing:0;border-radius:10px;overflow:hidden;border:1px solid var(--border);margin:22px 0;}

.rbt-th{background:var(--bg2);padding:10px 14px;font-size:11px;font-weight:700;color:var(--text2);text-align:left;border-bottom:1px solid var(--border);}

.rbt-td{padding:10px 14px;font-size:12px;color:var(--text2);border-bottom:1px solid var(--border);vertical-align:middle;}

.robustbench-table tr:last-child td{border-bottom:none;}

.rbt-acc-bar{height:8px;border-radius:4px;background:var(--border);overflow:hidden;margin-top:4px;}

.rbt-acc-fill{height:100%;border-radius:4px;}

@media(max-width:768px){.page-body{grid-template-columns:1fr;padding:24px 20px 60px;}.sidebar{position:static;}.hero-row{grid-template-columns:1fr;}.mod-hero{padding:36px 20px 32px;}.card{padding:24px 20px;}.cw-terms,.transfer-rates,.at-tradeoff,.rob-compare{grid-template-columns:1fr;}.pf-steps,.at-steps,.sd-flow,.td-row{flex-direction:column;}.attack-compare-table td,.attack-compare-table th{padding:8px 10px;font-size:11px;}}

.c-re{color:#fca5a5;}

.supply-chain-map{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.sc-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.sc-components{display:flex;flex-direction:column;gap:6px;}

.sc-component{display:flex;align-items:flex-start;gap:12px;padding:10px 14px;border-radius:9px;border:1px solid rgba(255,255,255,.07);}

.sc-num{width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight: 500;flex-shrink:0;margin-top:1px;}

.sc-body{flex:1;}

.sc-name{font-size:12px;font-weight:700;color:#fff;margin-bottom:2px;}

.sc-attack{font-size:10.5px;color:rgba(255,255,255,.5);line-height:1.5;}

.sc-risk{font-size:9px;font-weight:700;padding:2px 7px;border-radius:4px;margin-left:auto;flex-shrink:0;align-self:center;}

.dep-diagram{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.dd-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.dd-compare{display:grid;grid-template-columns:1fr 1fr;gap:14px;}

.dd-col{border-radius:9px;padding:14px 16px;}

.dd-col-title{font-size:11px;font-weight: 500;margin-bottom:10px;display:flex;align-items:center;gap:7px;}

.dd-step{font-size:11px;color:rgba(255,255,255,.55);margin-bottom:7px;display:flex;gap:7px;line-height:1.5;}

.dd-step:last-child{margin-bottom:0;}

.dd-step-num{color:rgba(255,255,255,.35);flex-shrink:0;font-weight:700;}

.dd-verdict{margin-top:10px;padding:9px 12px;border-radius:7px;font-size:11px;font-weight:700;line-height:1.5;}

.pytorch-timeline{display:flex;flex-direction:column;gap:0;border:1px solid var(--border);border-radius:12px;overflow:hidden;margin:22px 0;}

.pt-event{display:flex;gap:14px;padding:13px 18px;border-bottom:1px solid var(--border);}

.pt-event:last-child{border-bottom:none;}

.pt-date{font-size:10px;font-weight:700;color:var(--text3);font-family:"Courier New",monospace;min-width:80px;flex-shrink:0;padding-top:2px;}

.pt-event-icon{width:10px;height:10px;border-radius:50%;flex-shrink:0;margin-top:4px;}

.pt-event-body{flex:1;}

.pt-event-name{font-size:12px;font-weight: 500;color:var(--text);margin-bottom:3px;}

.pt-event-desc{font-size:12px;color:var(--text2);line-height:1.6;}

.serial-compare{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0;}

.serial-col{border-radius:11px;border:1px solid var(--border);overflow:hidden;}

.serial-header{padding:13px 16px;border-bottom:1px solid var(--border);}

.serial-name{font-size:13px;font-weight: 500;color:var(--text);}

.serial-risk{font-size:10px;font-weight:700;padding:2px 7px;border-radius:4px;margin-top:3px;display:inline-block;}

.serial-body{padding:13px 16px;}

.serial-prop{display:flex;gap:8px;font-size:12px;color:var(--text2);margin-bottom:8px;line-height:1.55;}

.serial-prop:last-child{margin-bottom:0;}

.serial-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;margin-top:6px;}

.hf-spectrum{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.hfs-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.hfs-tiers{display:flex;flex-direction:column;gap:8px;}

.hfs-tier{border-radius:9px;padding:13px 16px;border:1px solid rgba(255,255,255,.08);}

.hfs-tier-header{display:flex;align-items:center;gap:10px;margin-bottom:7px;}

.hfs-tier-icon{width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight: 500;flex-shrink:0;}

.hfs-tier-name{font-size:12px;font-weight:700;color:#fff;}

.hfs-tier-badge{font-size:9px;font-weight:700;padding:2px 7px;border-radius:4px;margin-left:auto;}

.hfs-tier-desc{font-size:11px;color:rgba(255,255,255,.5);line-height:1.55;}

.hfs-examples{font-size:10px;font-family:"Courier New",monospace;color:rgba(255,255,255,.3);margin-top:5px;}

.cisco-flow{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.cf-step{display:flex;gap:12px;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.05);position:relative;}

.cf-connector{position:absolute;left:13px;top:40px;bottom:-11px;width:1px;background:rgba(239,68,68,.3);}

.cf-num{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight: 500;flex-shrink:0;position:relative;z-index:1;}

.cf-name{font-size:12px;font-weight:700;color:#fff;margin-bottom:2px;}

.cf-highlight{font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;margin-top:4px;display:inline-block;}

.memory-compare{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0;}

.mem-col{border-radius:11px;overflow:hidden;border:1px solid var(--border);}

.mem-header{padding:13px 16px;border-bottom:1px solid var(--border);}

.mem-title{font-size:13px;font-weight: 500;color:var(--text);}

.mem-sub{font-size:10px;color:var(--text3);margin-top:2px;}

.mem-body{padding:13px 16px;}

.mem-scenario{background:var(--bg2);border-radius:8px;padding:10px 12px;font-size:11.5px;color:var(--text2);line-height:1.6;margin-bottom:9px;border-left:3px solid var(--border-dark);}

.mem-verdict{font-size:11px;font-weight:700;padding:5px 9px;border-radius:5px;display:inline-block;}

.sbom-diagram{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.sbom-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:14px;}

.sbom-sections{display:grid;grid-template-columns:1fr 1fr;gap:10px;}

.sbom-section{border-radius:8px;padding:11px 13px;border:1px solid rgba(255,255,255,.08);}

.sbom-section-name{font-size:11px;font-weight: 500;color:#fff;margin-bottom:7px;display:flex;align-items:center;gap:7px;}

.sbom-item{font-size:10.5px;color:rgba(255,255,255,.5);margin-bottom:4px;display:flex;gap:6px;line-height:1.5;}

.sbom-item:last-child{margin-bottom:0;}

.sbom-dot{width:4px;height:4px;border-radius:50%;flex-shrink:0;margin-top:5px;}

.slsa-levels{display:flex;flex-direction:column;gap:0;border:1px solid var(--border);border-radius:12px;overflow:hidden;margin:22px 0;}

.slsa-level{display:flex;align-items:flex-start;gap:14px;padding:14px 18px;border-bottom:1px solid var(--border);}

.slsa-level:last-child{border-bottom:none;}

.slsa-badge{width:48px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight: 500;flex-shrink:0;}

.slsa-body{flex:1;}

.slsa-name{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:3px;}

.slsa-desc{font-size:12px;color:var(--text2);line-height:1.6;}

.slsa-ml{font-size:11px;font-weight:600;color:var(--text3);margin-top:4px;font-style:italic;}

.crypto-chain{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.cc-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.cc-steps{display:flex;gap:0;align-items:stretch;flex-wrap:wrap;}

.cc-step{flex:1;min-width:120px;}

.cc-step-box{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:11px 12px;height:100%;}

.cc-step-num{font-size:9px;font-weight: 500;letter-spacing:.07em;text-transform:uppercase;margin-bottom:5px;}

.cc-step-name{font-size:11px;font-weight:700;color:#fff;margin-bottom:3px;}

.cc-step-desc{font-size:10px;color:rgba(255,255,255,.4);line-height:1.5;}

.cc-arrow{display:flex;align-items:center;padding:0 5px;color:#475569;font-size:14px;flex-shrink:0;}

@media(max-width:768px){.page-body{grid-template-columns:1fr;padding:24px 20px 60px;}.sidebar{position:static;}.hero-row{grid-template-columns:1fr;}.mod-hero{padding:36px 20px 32px;}.card{padding:24px 20px;}.dd-compare,.serial-compare,.memory-compare,.sbom-sections{grid-template-columns:1fr;}.cc-steps{flex-direction:column;}}

.query-strategies{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin:22px 0;}

.qs-card{border-radius:11px;border:1px solid var(--border);overflow:hidden;}

.qs-header{padding:13px 15px;border-bottom:1px solid var(--border);}

.qs-name{font-size:13px;font-weight: 500;color:var(--text);}

.qs-efficiency{font-size:9px;font-weight:700;padding:2px 7px;border-radius:4px;margin-top:3px;display:inline-block;}

.qs-body{padding:13px 15px;}

.qs-desc{font-size:12.5px;color:var(--text2);line-height:1.65;margin-bottom:9px;}

.qs-how{font-size:11.5px;background:var(--bg2);border-radius:6px;padding:8px 10px;border-left:3px solid var(--border-dark);color:var(--text2);}

.extraction-goals{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:22px 0;}

.eg-card{border-radius:11px;padding:16px;border:1px solid var(--border);}

.eg-num{font-size:9px;font-weight: 500;letter-spacing:.07em;text-transform:uppercase;margin-bottom:6px;}

.eg-title{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:5px;}

.eg-desc{font-size:12px;color:var(--text2);line-height:1.6;}

.knockoff-compare{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.kc-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.kc-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px;}

.kc-col{border-radius:9px;padding:14px;}

.kc-col-title{font-size:11px;font-weight: 500;margin-bottom:10px;}

.kc-step{font-size:11px;color:rgba(255,255,255,.55);margin-bottom:7px;display:flex;gap:7px;line-height:1.5;}

.kc-step-num{color:rgba(255,255,255,.35);flex-shrink:0;font-weight:700;}

.kc-verdict{margin-top:10px;padding:9px 12px;border-radius:7px;font-size:11px;font-weight:700;line-height:1.5;}

.watermark-flow{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.wf-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:14px;}

.wf-phases{display:grid;grid-template-columns:1fr 1fr;gap:14px;}

.wf-phase{border-radius:9px;padding:14px;}

.wf-phase-title{font-size:11px;font-weight: 500;margin-bottom:9px;}

.wf-step{font-size:11px;color:rgba(255,255,255,.55);margin-bottom:6px;display:flex;gap:7px;line-height:1.5;}

.wf-step-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;margin-top:5px;}

.shadow-flow{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.sf-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.sf-steps{display:flex;flex-direction:column;gap:0;}

.sf-step{display:flex;align-items:flex-start;gap:12px;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.05);position:relative;}

.sf-step:last-child{border-bottom:none;}

.sf-connector{position:absolute;left:13px;top:40px;bottom:-11px;width:1px;background:rgba(124,58,237,.35);}

.sf-step:last-child .sf-connector{display:none;}

.sf-num{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight: 500;flex-shrink:0;position:relative;z-index:1;}

.sf-body{flex:1;}

.sf-name{font-size:12px;font-weight:700;color:#fff;margin-bottom:2px;}

.sf-desc{font-size:11px;color:rgba(255,255,255,.5);line-height:1.5;}

.sf-note{font-size:10px;font-family:"Courier New",monospace;color:#a78bfa;background:rgba(124,58,237,.1);padding:3px 8px;border-radius:4px;margin-top:4px;display:inline-block;}

.lira-compare{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0;}

.lira-col{border-radius:11px;border:1px solid var(--border);overflow:hidden;}

.lira-header{padding:12px 16px;border-bottom:1px solid var(--border);}

.lira-name{font-size:13px;font-weight: 500;color:var(--text);}

.lira-cite{font-size:10px;color:var(--text3);margin-top:2px;font-family:"Courier New",monospace;}

.lira-body{padding:12px 16px;}

.lira-prop{display:flex;gap:8px;font-size:12px;color:var(--text2);margin-bottom:8px;line-height:1.55;}

.lira-prop:last-child{margin-bottom:0;}

.lira-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;margin-top:6px;}

.inversion-visual{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.iv-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.iv-steps{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px;}

.iv-step-box{border-radius:9px;padding:12px 14px;text-align:center;min-width:110px;flex:1;}

.iv-step-label{font-size:9px;font-weight: 500;letter-spacing:.07em;text-transform:uppercase;margin-bottom:4px;}

.iv-step-name{font-size:11px;font-weight:700;}

.iv-step-detail{font-size:10px;margin-top:4px;line-height:1.4;}

.iv-arrow{color:#475569;font-size:16px;flex-shrink:0;}

.gan-compare{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0;}

.gan-col{border-radius:11px;border:1px solid var(--border);overflow:hidden;}

.gan-header{padding:12px 16px;border-bottom:1px solid var(--border);}

.gan-name{font-size:13px;font-weight: 500;color:var(--text);}

.gan-body{padding:12px 16px;}

.gan-prop{display:flex;gap:8px;font-size:12px;color:var(--text2);margin-bottom:8px;line-height:1.55;}

.gan-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;margin-top:6px;}

.unlearning-options{display:flex;flex-direction:column;gap:0;border:1px solid var(--border);border-radius:12px;overflow:hidden;margin:22px 0;}

.ul-option{display:flex;align-items:flex-start;gap:14px;padding:16px 18px;border-bottom:1px solid var(--border);}

.ul-option:last-child{border-bottom:none;}

.ul-badge{width:52px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight: 500;flex-shrink:0;text-align:center;line-height:1.2;}

.ul-body{flex:1;}

.ul-name{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:3px;}

.ul-desc{font-size:12px;color:var(--text2);line-height:1.6;}

.ul-cost{font-size:11px;font-weight:600;margin-top:5px;padding:3px 9px;border-radius:5px;display:inline-block;}

.ul-guarantee{font-size:11px;font-weight:600;padding:3px 9px;border-radius:5px;margin-left:6px;display:inline-block;}

.sisa-diagram{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.sd2-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.sd2-compare{display:grid;grid-template-columns:1fr 1fr;gap:14px;}

.sd2-col{border-radius:9px;padding:14px;}

.sd2-col-title{font-size:11px;font-weight: 500;margin-bottom:10px;}

.shard{border-radius:7px;padding:8px 10px;margin-bottom:6px;font-size:10.5px;font-weight:600;text-align:center;}

.privacy-table{width:100%;border-collapse:separate;border-spacing:0;border-radius:10px;overflow:hidden;border:1px solid var(--border);margin:22px 0;}

.pt-th{background:var(--bg2);padding:10px 14px;font-size:11px;font-weight:700;color:var(--text2);text-align:left;border-bottom:1px solid var(--border);}

.pt-td{padding:10px 14px;font-size:12px;color:var(--text2);border-bottom:1px solid var(--border);vertical-align:top;}

.privacy-table tr:last-child td{border-bottom:none;}

.privacy-table tr:hover td{background:var(--bg);}

.pt-status{font-size:10px;font-weight:700;padding:2px 7px;border-radius:4px;white-space:nowrap;}

@media(max-width:768px){.page-body{grid-template-columns:1fr;padding:24px 20px 60px;}.sidebar{position:static;}.hero-row{grid-template-columns:1fr;}.mod-hero{padding:36px 20px 32px;}.card{padding:24px 20px;}.query-strategies,.extraction-goals,.knockoff-compare .kc-cols,.watermark-flow .wf-phases,.lira-compare,.gan-compare,.sisa-diagram .sd2-compare{grid-template-columns:1fr;}.iv-steps{flex-direction:column;}}

:root{--font:"Montserrat",sans-serif;--mono:"JetBrains Mono",monospace;--accent:#7c3aed;--accent-hover:#6d28d9;--accent-light:#f5f3ff;--accent-mid:#ede9fe;--text:#0f172a;--text2:#475569;--text3:#94a3b8;--bg:#f8fafc;--bg2:#f1f5f9;--white:#ffffff;--border:#e2e8f0;--border-dark:#cbd5e1;--green:#059669;--green-light:#ecfdf5;--amber:#d97706;--amber-light:#fffbeb;--red:#dc2626;--red-light:#fef2f2;--blue:#2563eb;--blue-light:#eff6ff;--rlg:14px;--sw:224px;--shadow:0 1px 3px rgba(15,23,42,.07),0 4px 16px rgba(15,23,42,.05);}

.phase-flow{display:flex;flex-direction:column;gap:0;margin:22px 0;background:#0f172a;border-radius:12px;overflow:hidden;}

.phase-row{display:flex;align-items:stretch;border-bottom:1px solid rgba(255,255,255,.06);}

.phase-row:last-child{border-bottom:none;}

.phase-num{width:52px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:900;color:rgba(255,255,255,.8);background:rgba(255,255,255,.02);border-right:1px solid rgba(255,255,255,.06);}

.phase-body{flex:1;}

.phase-name{font-size:12px;font-weight: 500;margin-bottom:5px;letter-spacing:-.01em;}

.phase-desc{font-size:12px;line-height:1.6;}

.phase-tag{display:inline-block;font-size:10px;font-weight:700;padding:2px 8px;border-radius:4px;margin-left:8px;vertical-align:middle;}

.surface-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0;}

.surface-card{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:16px;}

.surface-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text3);margin-bottom:8px;}

.surface-title{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:8px;letter-spacing:-.01em;}

.surface-items{list-style:none;}

.surface-items li{font-size:12px;color:var(--text2);padding:4px 0;border-bottom:1px solid var(--border);line-height:1.5;}

.surface-items li:last-child{border-bottom:none;}

.surface-items li::before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--accent);margin-right:8px;vertical-align:middle;flex-shrink:0;}

.prio-table{width:100%;border-collapse:separate;border-spacing:0;border-radius:10px;overflow:hidden;border:1px solid var(--border);margin:22px 0;}

.prio-table thead{background:#0f172a;}

.prio-table th{padding:11px 14px;text-align:left;font-size:10px;font-weight:700;color:rgba(255,255,255,.5);text-transform:uppercase;letter-spacing:.08em;}

.prio-table td{padding:11px 14px;border-top:1px solid var(--border);font-size:12.5px;color:var(--text2);vertical-align:top;}

.prio-table tbody tr:hover td{background:var(--bg);}

.cat-pill{font-family:var(--mono);font-size:11px;font-weight:600;padding:2px 8px;border-radius:5px;white-space:nowrap;}

.sev-high{background:#fff7ed;color:#9a3412;}

.sev-medium{background:#fffbeb;color:#92400e;}

.exec-steps{display:flex;flex-direction:column;gap:0;margin:22px 0;}

.exec-step{display:flex;gap:18px;padding:16px 0;position:relative;}

.exec-step:not(:last-child){border-bottom:1px solid var(--border);}

.exec-step-num{width:36px;height:36px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight: 500;font-size:14px;flex-shrink:0;}

.exec-step-body{flex:1;}

.exec-step-title{font-size:14px;font-weight: 500;color:var(--text);margin-bottom:5px;letter-spacing:-.01em;}

.exec-step-desc{font-size:13px;color:var(--text2);line-height:1.65;}

.compare-row{display:grid;grid-template-columns:auto 1fr;gap:12px;margin:22px 0;}

.compare-col{border-radius:10px;overflow:hidden;border:1px solid var(--border);}

.compare-head{padding:12px 16px;font-size:12px;font-weight: 500;letter-spacing:-.01em;}

.compare-head.manual{background:#eff6ff;color:#1e3a8a;}

.compare-head.auto{background:var(--accent-light);color:#4c1d95;}

.compare-body{padding:12px 16px;}

.compare-item{font-size:12.5px;color:var(--text2);padding:5px 0;border-bottom:1px solid var(--border);line-height:1.5;}

.compare-item:last-child{border-bottom:none;}

.plus{color:var(--green);font-weight:700;}

.minus{color:var(--red);font-weight:700;}

.class-table{width:100%;border-collapse:separate;border-spacing:0;border-radius:10px;overflow:hidden;border:1px solid var(--border);margin:22px 0;}

.class-table thead{background:var(--bg2);}

.class-table th{padding:10px 14px;text-align:left;font-size:10px;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--border);}

.class-table td{padding:10px 14px;font-size:12.5px;color:var(--text2);border-bottom:1px solid var(--border);}

.class-table tr:last-child td{border-bottom:none;}

.verdict{font-size:10px;font-weight:700;padding:2px 8px;border-radius:4px;white-space:nowrap;}

.v-fail{background:var(--red-light);color:var(--red);}

.v-borderline{background:var(--amber-light);color:var(--amber);}

.v-pass{background:var(--green-light);color:var(--green);}

.sev-tiers{display:flex;flex-direction:column;gap:10px;margin:22px 0;}

.sev-tier{display:flex;gap:14px;align-items:flex-start;padding:14px 16px;border-radius:10px;border:1px solid var(--border);}

.sev-badge{font-size:11px;font-weight:700;padding:4px 10px;border-radius:6px;white-space:nowrap;flex-shrink:0;margin-top:2px;}

.sev-body{flex:1;}

.sev-title{font-size:13px;font-weight:700;color:var(--text);margin-bottom:4px;}

.sev-criteria{font-size:12px;color:var(--text2);line-height:1.6;}

.tier-critical{background:#fff5f5;border-color:#fca5a5;}

.tier-high{background:#fff7ed;border-color:#fdba74;}

.tier-medium{background:var(--amber-light);border-color:#fde68a;}

.tier-low{background:var(--bg2);border-color:var(--border);}

.tier-info{background:var(--white);border-color:var(--border);}

.report-parts{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:22px 0;}

.report-part{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:16px;}

.rp-num{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text3);margin-bottom:6px;}

.rp-title{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:6px;}

.rp-desc{font-size:12px;color:var(--text2);line-height:1.6;}

.faq-item{border-bottom:1px solid var(--border);padding:16px 0;}

.faq-item:first-child{border-top:1px solid var(--border);}

.faq-q{font-size:14px;font-weight:700;color:var(--text);cursor:pointer;display:flex;justify-content:space-between;align-items:flex-start;gap:14px;letter-spacing:-.01em;}

.faq-q:hover{color:var(--accent);}

.faq-a{font-size:13px;color:var(--text2);line-height:1.7;margin-top:10px;display:none;}

.faq-item.open .faq-a{display:block;}

.faq-item.open .faq-q{color:var(--accent);}

.faq-chev{flex-shrink:0;transition:transform .2s;}

.faq-item.open .faq-chev{transform:rotate(180deg);}

.practice-card{background:linear-gradient(135deg,#1e1b4b 0%,#3b1f6e 100%);border-radius:var(--rlg);padding:20px;display:flex;align-items:start;gap:22px;flex-wrap:wrap;margin-top:22px;}

.practice-card.teal{background:linear-gradient(135deg,#0d2e2e 0%,#0f4040 100%);}

.pc-icon{width:44px;height:44px;background:rgba(255,255,255,.12);border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}

.pc-body{flex:1;}

.pc-eyebrow{font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#a78bfa;margin-bottom:4px;}

.practice-card.teal .pc-eyebrow{color:#5eead4;}

.pc-title{font-size:15px;font-weight: 500;color:#fff;letter-spacing:-.025em;margin-bottom:5px;}

.practice-card .pc-desc{font-size:12.5px;line-height:1.6; color:rgba(255,255,255,.75);}

.pc-btns{display:flex;gap:8px;flex-wrap:wrap;}

.btn-pcp{font-family:var(--font);font-size:12px;font-weight:700;background:#fff;color:var(--accent);border:none;padding:8px 16px;border-radius:7px;text-decoration:none;transition:opacity .15s;white-space:nowrap;}

.btn-pcp:hover{opacity:.9;}

.practice-card.teal .btn-pcp{color:#0d9488;}

.btn-pcg{font-family:var(--font);font-size:12px;font-weight:600;background:transparent;color:rgba(255,255,255,.7);border:1.5px solid rgba(255,255,255,.22);padding:8px 16px;border-radius:7px;text-decoration:none;transition:border-color .15s,color .15s;white-space:nowrap;}

.btn-pcg:hover{border-color:rgba(255,255,255,.75);color:#fff;}

@media(max-width:768px){.page-body{grid-template-columns:1fr;padding:24px 20px 60px;}.sidebar{position:static;}.hero-row{grid-template-columns:1fr;}.mod-hero{padding:36px 20px 32px;}.card{padding:24px 20px;}.surface-grid{grid-template-columns:1fr;}.compare-row,.report-parts{grid-template-columns:1fr;}}

.paper-ref{display:inline-flex;align-items:center;gap:5px;background:var(--bg2);border:1px solid var(--border);border-radius:6px;padding:3px 8px;font-size:11px;color:var(--text2);font-weight:600;margin-top:4px;}

.paper-ref-year{font-family:var(--mono);color:var(--text3);font-size:10px;}

.differs-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0;}

.differs-col{border-radius:10px;overflow:hidden;border:1px solid var(--border);}

.differs-head{padding:12px 18px;font-size:12px;font-weight: 500;letter-spacing:-.01em;}

.differs-head.trad{background:#eff6ff;color:#1e3a8a;}

.differs-head.ai{background:var(--red-light);color:var(--red);}

.differs-body{padding:0;}

.differs-item{display:flex;align-items:flex-start;gap:10px;padding:10px 18px;border-top:1px solid var(--border);font-size:12.5px;color:var(--text2);line-height:1.5;}

.differs-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;margin-top:5px;}

.attack-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:22px 0;}

.attack-card{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding: 16px;}

.attack-card.red{background:#fff5f5;border-color:#fca5a5;}

.attack-card.amber{background:var(--amber-light);border-color:#fde68a;}

.attack-card.blue{background:var(--blue-light);border-color:#93c5fd;}

.attack-card.purple{background:var(--accent-light);border-color:#c4b5fd;}

.attack-icon{font-size:22px;margin-bottom:8px;}

.attack-name{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:4px;letter-spacing:-.01em;}

.attack-tag{font-family:var(--mono);font-size:10px;font-weight:600;padding:1px 6px;border-radius:4px;background:rgba(0,0,0,.06);color:var(--text2);margin-bottom:8px;display:inline-block;}

.attack-desc{font-size:12.5px;color:var(--text2);line-height:1.6;}

.mi-diagram{background:#0f172a;border-radius:12px;padding:24px;margin:22px 0;}

.mi-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:18px;}

.mi-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:0;align-items:center;}

.mi-box{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:12px 14px;text-align:center;}

.mi-box-label{font-size:10px;font-weight:700;color:rgba(255,255,255,.4);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px;}

.mi-box-value{font-size:13px;font-weight:700;color:#e2e8f0;line-height:1.3;}

.mi-arrow{color:rgba(124,58,237,.6);font-size:18px;padding:0 8px;text-align:center;}

.mi-verdict{display:flex;gap:10px;margin-top:16px;justify-content:center;}

.mi-verdict-item{padding:8px 16px;border-radius:8px;font-size:12px;font-weight:700;text-align:center;}

.mi-in{background:rgba(220,38,38,.15);color:#fca5a5;}

.mi-out{background:rgba(5,150,105,.15);color:#6ee7b7;}

.accuracy-bars{margin:22px 0;display:flex;flex-direction:column;gap:10px;}

.acc-row{display:flex;align-items:center;gap:12px;}

.acc-label{font-size:12px;font-weight:600;color:var(--text);width:200px;flex-shrink:0;}

.acc-track{flex:1;height:22px;background:var(--bg2);border-radius:6px;overflow:hidden;border:1px solid var(--border);}

.acc-fill{height:100%;border-radius:6px;display:flex;align-items:center;padding-left:8px;font-size:10px;font-weight:700;color:#fff;transition:width .8s ease;}

.acc-val{font-size:12px;font-weight:700;width:60px;text-align:right;color:var(--text2);}

.pipeline-compare{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0;}

.pipeline-col{border-radius:12px;overflow:hidden;border:1px solid var(--border);}

.pipeline-head{padding:12px 18px;font-size:12px;font-weight: 500;letter-spacing:-.01em;}

.pipeline-head.plain{background:#fef2f2;color:var(--red);}

.pipeline-head.enc{background:var(--green-light);color:var(--green);}

.pipeline-step{display:flex;align-items:center;gap:10px;padding:11px 18px;border-top:1px solid var(--border);font-size:12px;color:var(--text2);}

.pipeline-icon{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;}

.pipeline-step-text{flex:1;line-height:1.5;}

.ps-badge{font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px;white-space:nowrap;}

.ps-exposed{background:var(--red-light);color:var(--red);}

.ps-protected{background:var(--green-light);color:var(--green);}

.control-table{width:100%;border-collapse:separate;border-spacing:0;border-radius:10px;overflow:hidden;border:1px solid var(--border);margin:22px 0;font-size:12.5px;}

.control-table thead{background:#0f172a;}

.control-table th{padding:11px 14px;text-align:left;font-size:10px;font-weight:700;color:rgba(255,255,255,.5);text-transform:uppercase;letter-spacing:.08em;}

.control-table td{padding:11px 14px;border-top:1px solid var(--border);vertical-align:top;color:var(--text2);}

.control-table tbody tr:hover td{background:var(--bg);}

.result-pill{font-size:10px;font-weight:700;padding:2px 8px;border-radius:4px;white-space:nowrap;}

.result-fail{background:var(--red-light);color:var(--red);}

.result-partial{background:var(--amber-light);color:var(--amber);}

.result-works{background:var(--green-light);color:var(--green);}

.compliance-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0;}

.comp-card{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:16px;}

.comp-ref{font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);margin-bottom:6px;}

.comp-title{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:6px;letter-spacing:-.01em;}

.comp-desc{font-size:12px;color:var(--text2);line-height:1.6;}

@media(max-width:768px){.page-body{grid-template-columns:1fr;padding:24px 20px 60px;}.sidebar{position:static;}.hero-row{grid-template-columns:1fr;}.mod-hero{padding:36px 20px 32px;}.card{padding:24px 20px;}.attack-grid,.differs-grid,.pipeline-compare,.compliance-grid{grid-template-columns:1fr;}.mi-flow{grid-template-columns:1fr;}.accuracy-bars .acc-label{width:140px;}}

.enc-ladder{background:#0f172a;border-radius:12px;overflow:hidden;margin:22px 0;}

.enc-ladder-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;padding:16px 20px 12px;}

.enc-rung{display:flex;align-items:stretch;border-top:1px solid rgba(255,255,255,.06);}

.enc-rung-num{width:48px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:900;color:rgba(255,255,255,.07);}

.enc-rung-body{flex:1;padding:14px 18px;border-left:1px solid rgba(255,255,255,.06);}

.enc-rung-name{font-size:13px;font-weight: 500;color:#e2e8f0;margin-bottom:3px;letter-spacing:-.01em;}

.enc-rung-tag{display:inline-block;font-size:10px;font-weight:700;padding:1px 7px;border-radius:4px;margin-left:8px;vertical-align:middle;}

.enc-rung-desc{font-size:12px;color:rgba(255,255,255,.45);line-height:1.6;}

.enc-rung-capability{font-size:11px;font-weight:700;color:rgba(255,255,255,.25);margin-top:6px;}

.enc-rung-operations{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap;}

.op-pill{font-size:10px;font-weight:700;padding:2px 8px;border-radius:4px;}

.enc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:22px 0;}

.enc-card{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding: 16px;}

.enc-card.green{background:#f0fdf4;border-color:#6ee7b7;}

.enc-card.blue{background:var(--blue-light);border-color:#93c5fd;}

.enc-card.amber{background:var(--amber-light);border-color:#fde68a;}

.enc-card.purple{background:var(--accent-light);border-color:#c4b5fd;}

.enc-icon{font-size:22px;margin-bottom:8px;}

.enc-name{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:4px;letter-spacing:-.01em;}

.enc-sub{font-family:var(--mono);font-size:10px;color:var(--text3);margin-bottom:8px;}

.enc-desc{font-size:12.5px;color:var(--text2);line-height:1.6;}

.enc-examples{font-size:11px;color:var(--text3);margin-top:6px;font-weight:600;}

.he-compare{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0;}

.he-col{border-radius:10px;overflow:hidden;border:1px solid var(--border);}

.he-head{padding:12px 16px;text-align:center;}

.he-head.phe{background:#eff6ff;color:#1e3a8a;}

.he-head.she{background:var(--amber-light);color:#92400e;}

.he-head.fhe{background:var(--green-light);color:var(--green);}

.he-head-name{font-size:13px;font-weight: 500;letter-spacing:-.01em;}

.he-head-full{font-size:10px;font-weight:600;opacity:.7;margin-top:2px;}

.he-body{padding:14px 16px;}

.he-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid var(--border);font-size:12px;}

.he-row:last-child{border-bottom:none;}

.he-label{color:var(--text2);}

.he-val{font-weight:700;font-size:11px;}

.he-val.yes{color:var(--green);}

.he-val.no{color:var(--red);}

.he-val.limited{color:var(--amber);}

.noise-viz{background:#0f172a;border-radius:12px;padding:24px;margin:22px 0;}

.nv-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:18px;}

.nv-row{margin-bottom:18px;}

.nv-label{font-size:11px;font-weight:700;color:rgba(255,255,255,.7);margin-bottom:6px;}

.nv-bar-wrap{height:28px;background:rgba(255,255,255,.04);border-radius:6px;overflow:visible;position:relative;border:1px solid rgba(255,255,255,.08);}

.nv-bar{height:100%;border-radius:5px;display:flex;align-items:center;padding:0 10px;font-size:10px;font-weight:700;color:#fff;transition:width .8s ease;}

.nv-threshold{position:absolute;right:0;top:-18px;font-size:9px;font-weight:700;color:rgba(220,38,38,.7);letter-spacing:.05em;}

.nv-threshold-line{position:absolute;right:0;top:0;bottom:0;width:2px;background:rgba(220,38,38,.4);}

.nv-caption{font-size:11px;color:rgba(255,255,255,.3);margin-top:6px;line-height:1.5;}

.boot-flow{display:flex;flex-direction:column;gap:0;margin:22px 0;background:#0f172a;border-radius:12px;overflow:hidden;}

.boot-step{display:flex;align-items:center;gap:16px;padding:14px 20px;border-bottom:1px solid rgba(255,255,255,.06);}

.boot-step:last-child{border-bottom:none;}

.boot-num{width:28px;height:28px;border-radius:50%;background:rgba(124,58,237,.2);border:1px solid rgba(124,58,237,.4);color:#a78bfa;font-size:11px;font-weight: 500;display:flex;align-items:center;justify-content:center;flex-shrink:0;}

.boot-text{flex:1;}

.boot-name{font-size:12px;font-weight: 500;color:#e2e8f0;margin-bottom:2px;}

.boot-desc{font-size:11px;color:rgba(255,255,255,.4);line-height:1.5;}

.boot-state{font-size:10px;font-weight:700;padding:2px 8px;border-radius:4px;flex-shrink:0;}

.bs-high{background:rgba(220,38,38,.2);color:#fca5a5;}

.bs-low{background:rgba(5,150,105,.2);color:#6ee7b7;}

.ckks-diagram{background:#0f172a;border-radius:12px;padding:24px;margin:22px 0;}

.ckks-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.ckks-row{display:flex;gap:8px;align-items:center;margin-bottom:12px;}

.ckks-label{font-size:11px;font-weight:700;color:rgba(255,255,255,.5);width:90px;flex-shrink:0;}

.ckks-slots{display:flex;gap:4px;flex:1;}

.ckks-slot{flex:1;height:32px;border-radius:5px;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:10px;font-weight:600;}

.ckks-op{color:rgba(255,255,255,.4);font-size:18px;margin:4px 0;text-align:center;}

.se-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:0;align-items:start;background:#0f172a;border-radius:12px;padding:24px;margin:22px 0;}

.se-box{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:14px;text-align:center;}

.se-actor{font-size:10px;font-weight:700;color:rgba(255,255,255,.35);text-transform:uppercase;letter-spacing:.07em;margin-bottom:6px;}

.se-content{font-size:12px;color:#e2e8f0;font-weight:700;line-height:1.4;}

.se-note{font-size:10px;color:rgba(255,255,255,.3);margin-top:4px;line-height:1.4;}

.se-arrow{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 8px;margin-top:24px;}

.se-arrow-line{width:100%;height:1px;background:rgba(124,58,237,.4);}

.se-arrow-label{font-size:9px;color:rgba(124,58,237,.6);font-weight:700;margin-top:4px;text-align:center;white-space:nowrap;}

.vx-pipeline{display:flex;flex-direction:column;gap:0;margin:22px 0;border-radius:12px;overflow:hidden;border:1px solid var(--border);}

.vx-step{display:flex;align-items:center;gap:14px;padding:13px 18px;border-bottom:1px solid var(--border);font-size:13px;}

.vx-step:last-child{border-bottom:none;}

.vx-step-num{width:26px;height:26px;border-radius:50%;font-size:11px;font-weight: 500;display:flex;align-items:center;justify-content:center;flex-shrink:0;}

.vx-step-text{flex:1;}

.vx-step-title{font-weight:700;color:var(--text);}

.vx-step-detail{font-size:12px;color:var(--text2);margin-top:2px;}

.vx-badge{font-size:10px;font-weight:700;padding:2px 8px;border-radius:4px;white-space:nowrap;}

.vxb-plain{background:var(--red-light);color:var(--red);}

.vxb-enc{background:var(--green-light);color:var(--green);}

.vxb-protected{background:var(--accent-light);color:var(--accent);}

.lib-table{width:100%;border-collapse:separate;border-spacing:0;border-radius:10px;overflow:hidden;border:1px solid var(--border);margin:22px 0;font-size:12.5px;}

.lib-table thead{background:#0f172a;}

.lib-table th{padding:11px 14px;text-align:left;font-size:10px;font-weight:700;color:rgba(255,255,255,.5);text-transform:uppercase;letter-spacing:.08em;}

.lib-table td{padding:11px 14px;border-top:1px solid var(--border);vertical-align:top;color:var(--text2);}

.lib-table tbody tr:hover td{background:var(--bg);}

.lib-name{font-weight:700;color:var(--text);font-family:var(--mono);font-size:12px;}

.scheme-pill{font-size:10px;font-weight:700;padding:2px 7px;border-radius:4px;background:var(--accent-light);color:var(--accent);}

.shortfall-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:22px 0;}

.shortfall-card{background:var(--red-light);border:1px solid #fca5a5;border-radius:10px;padding:16px 18px;}

.shortfall-icon{font-size:22px;margin-bottom:8px;}

.shortfall-name{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:4px;}

.shortfall-desc{font-size:12.5px;color:var(--text2);line-height:1.6;}

.shortfall-fix{font-size:11px;font-weight:700;color:var(--green);margin-top:8px;padding-top:8px;border-top:1px solid #fca5a5;}

.bench-section{margin:22px 0;}

.bench-section-title{font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--text3);margin-bottom:12px;display:flex;align-items:center;gap:8px;}

.bench-section-title::after{content:"";flex:1;height:1px;background:var(--border);}

.bench-rows{display:flex;flex-direction:column;gap:10px;}

.bench-row{display:flex;align-items:center;gap:12px;}

.bench-label{font-size:12px;font-weight:600;color:var(--text);width:140px;flex-shrink:0;}

.bench-bars{flex:1;display:flex;flex-direction:column;gap:3px;}

.bench-bar-wrap{display:flex;align-items:center;gap:8px;}

.bench-bar{height:16px;border-radius:4px;display:flex;align-items:center;padding-left:6px;font-size:10px;font-weight:700;color:#fff;transition:width .8s ease;min-width:20px;}

.bench-bar.plain{background:linear-gradient(90deg,#7c3aed,#a78bfa);}

.bench-bar.fhe{background:linear-gradient(90deg,#059669,#34d399);}

.bench-val{font-size:11px;font-weight:700;color:var(--text2);white-space:nowrap;}

.bench-legend{display:flex;gap:16px;margin-bottom:14px;}

.bench-leg-item{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--text2);}

.bench-leg-dot{width:12px;height:12px;border-radius:3px;flex-shrink:0;}

.quality-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:22px 0;}

.quality-card{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:16px;text-align:center;}

.quality-circle{width:72px;height:72px;border-radius:50%;margin:0 auto 10px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:3px solid;}

.quality-circle.green{border-color:var(--green);background:var(--green-light);}

.quality-circle.amber{border-color:var(--amber);background:var(--amber-light);}

.quality-value{font-size:15px;font-weight:900;line-height:1;letter-spacing:-.02em;}

.quality-vs{font-size:9px;font-weight:600;color:var(--text3);margin-top:2px;}

.quality-label{font-size:11px;font-weight:700;color:var(--text);margin-bottom:3px;}

.quality-desc{font-size:10px;color:var(--text3);line-height:1.4;}

.integration-grid{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0;}

.int-badge{font-size:11px;font-weight:600;padding:5px 12px;border-radius:6px;background:var(--bg2);border:1px solid var(--border);color:var(--text2);}

.int-badge.nvidia{background:#0a1628;border-color:#76b900;color:#76b900;}

@media(max-width:768px){.page-body{grid-template-columns:1fr;padding:24px 20px 60px;}.sidebar{position:static;}.hero-row{grid-template-columns:1fr;}.mod-hero{padding:36px 20px 32px;}.card{padding:24px 20px;}.enc-grid,.he-compare,.enc-grid,.shortfall-grid,.quality-grid{grid-template-columns:1fr 1fr;}.se-flow{grid-template-columns:1fr;}.ckks-slots{flex-wrap:wrap;}.ckks-slot{min-width:40px;}}

.dp-intuition{background:#0f172a;border-radius:12px;padding:24px;margin:22px 0;}

.dpi-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.dpi-row{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;margin-bottom:12px;}

.dpi-dataset{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:12px 14px;}

.dpi-ds-label{font-size:9px;font-weight:700;color:rgba(255,255,255,.35);text-transform:uppercase;letter-spacing:.07em;margin-bottom:6px;}

.dpi-record{font-size:11px;color:#e2e8f0;padding:3px 0;border-bottom:1px solid rgba(255,255,255,.06);}

.dpi-record:last-child{border-bottom:none;}

.dpi-record.highlight{color:#a78bfa;font-weight:700;}

.dpi-record.missing{color:rgba(255,255,255,.2);text-decoration:line-through;}

.dpi-arrow{color:rgba(124,58,237,.5);font-size:20px;text-align:center;}

.dpi-output{display:flex;flex-direction:column;gap:6px;margin-top:14px;}

.dpi-out-row{display:flex;align-items:center;gap:10px;}

.dpi-out-label{font-size:10px;font-weight:700;color:rgba(255,255,255,.4);width:80px;flex-shrink:0;}

.dpi-out-bar{flex:1;height:18px;border-radius:4px;display:flex;align-items:center;padding-left:6px;font-size:10px;font-weight:700;color:#fff;}

.dpi-ratio{font-size:11px;font-weight:700;padding:2px 8px;border-radius:4px;flex-shrink:0;}

.epsilon-scale{margin:22px 0;background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:20px 24px;}

.es-title{font-size:12px;font-weight: 500;color:var(--text);margin-bottom:14px;letter-spacing:-.01em;}

.es-track{position:relative;height:32px;border-radius:8px;overflow:hidden;margin-bottom:10px;background:linear-gradient(90deg,#059669 0%,#16a34a 15%,#65a30d 25%,#d97706 45%,#ea580c 65%,#dc2626 100%);}

.es-markers{display:flex;justify-content:space-between;font-size:10px;font-weight:700;color:var(--text3);padding:0 4px;}

.es-labels{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:0;margin-top:8px;}

.es-label{font-size:11px;color:var(--text2);text-align:center;line-height:1.4;}

.es-label strong{display:block;color:var(--text);font-weight: 500;}

.es-ticks{display:flex;justify-content:space-between;font-size:11px;font-weight: 500;color:#fff;padding:0 8px;line-height:32px;position:absolute;top:0;left:0;right:0;}

.formula-box{background:#0f172a;border-radius:12px;padding:20px 22px;margin:22px 0;}

.fb-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:14px;}

.fb-eq{font-family:var(--mono);font-size:14px;font-weight:700;color:#e2e8f0;text-align:center;padding:14px;background:rgba(255,255,255,.04);border-radius:8px;margin-bottom:14px;letter-spacing:.02em;}

.fb-terms{display:flex;gap:10px;flex-wrap:wrap;}

.fb-term{flex:1;min-width:130px;border-radius:8px;padding:10px 12px;border:1px solid rgba(255,255,255,.1);}

.fb-term-sym{font-family:var(--mono);font-size:13px;font-weight: 500;margin-bottom:4px;}

.fb-term-name{font-size:11px;font-weight:700;color:#fff;margin-bottom:3px;}

.fb-term-desc{font-size:10px;color:rgba(255,255,255,.4);line-height:1.5;}

.noise-dist{background:#0f172a;border-radius:12px;padding:24px;margin:22px 0;}

.nd-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:14px;}

.nd-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}

.nd-col{border-radius:8px;overflow:hidden;border:1px solid rgba(255,255,255,.08);}

.nd-head{padding:10px 14px;font-size:11px;font-weight: 500;letter-spacing:-.01em;}

.nd-head.lap{background:rgba(124,58,237,.2);color:#a78bfa;}

.nd-head.gauss{background:rgba(37,99,235,.2);color:#93c5fd;}

.nd-body{padding:14px;}

.nd-stat{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px solid rgba(255,255,255,.06);font-size:12px;}

.nd-stat:last-child{border-bottom:none;}

.nd-stat-label{color:rgba(255,255,255,.4);}

.nd-stat-val{color:#e2e8f0;font-weight:700;font-family:var(--mono);font-size:11px;}

.sens-table{width:100%;border-collapse:separate;border-spacing:0;border-radius:10px;overflow:hidden;border:1px solid var(--border);margin:22px 0;font-size:12.5px;}

.sens-table thead{background:#0f172a;}

.sens-table th{padding:11px 14px;text-align:left;font-size:10px;font-weight:700;color:rgba(255,255,255,.5);text-transform:uppercase;letter-spacing:.08em;}

.sens-table td{padding:11px 14px;border-top:1px solid var(--border);vertical-align:top;color:var(--text2);}

.sens-table tbody tr:hover td{background:var(--bg);}

.sens-pill{font-family:var(--mono);font-size:11px;font-weight:700;padding:2px 8px;border-radius:4px;background:var(--accent-light);color:var(--accent);}

.sens-high{background:var(--red-light);color:var(--red);}

.sens-low{background:var(--green-light);color:var(--green);}

.budget-viz{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding: 20px;margin:22px 0;}

.bv-title{font-size:12px;font-weight: 500;color:var(--text);margin-bottom:16px;letter-spacing:-.01em;}

.bv-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;}

.bv-label{font-size:12px;font-weight:600;color:var(--text);width:130px;flex-shrink:0;}

.bv-bar-wrap{flex:1;height:22px;background:var(--border);border-radius:5px;overflow:hidden;}

.bv-bar{height:100%;border-radius:5px;display:flex;align-items:center;padding-left:8px;font-size:10px;font-weight:700;color:#fff;transition:width .8s ease;}

.bv-val{font-size:12px;font-weight:700;width:80px;text-align:right;}

.dpsgd-steps{display:flex;flex-direction:column;gap:0;background:#0f172a;border-radius:12px;overflow:hidden;margin:22px 0;}

.dpsgd-step{display:flex;align-items:flex-start;gap:14px;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.06);}

.dpsgd-step:last-child{border-bottom:none;}

.dpsgd-num{width:30px;height:30px;border-radius:50%;background:rgba(124,58,237,.2);border:1px solid rgba(124,58,237,.4);color:#a78bfa;font-size:11px;font-weight: 500;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px;}

.dpsgd-body{flex:1;}

.dpsgd-name{font-size:12px;font-weight: 500;color:#e2e8f0;margin-bottom:3px;}

.dpsgd-desc{font-size:11.5px;color:rgba(255,255,255,.45);line-height:1.6;}

.dpsgd-formula{font-family:var(--mono);font-size:11px;color:#a78bfa;margin-top:5px;padding:4px 8px;background:rgba(124,58,237,.1);border-radius:4px;display:inline-block;}

.tradeoff-chart{margin:22px 0;background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding: 20px;}

.tc-title{font-size:12px;font-weight: 500;color:var(--text);margin-bottom:4px;}

.tc-sub{font-size:12px;color:var(--text2);margin-bottom:18px;}

.tc-rows{display:flex;flex-direction:column;gap:12px;}

.tc-row{display:flex;align-items:center;gap:12px;}

.tc-eps-label{font-family:var(--mono);font-size:12px;font-weight:700;width:80px;flex-shrink:0;color:var(--text);}

.tc-bars{flex:1;display:flex;flex-direction:column;gap:3px;}

.tc-bar-wrap{display:flex;align-items:center;gap:8px;}

.tc-bar{height:18px;border-radius:4px;display:flex;align-items:center;padding-left:6px;font-size:10px;font-weight:700;color:#fff;}

.tc-bar.acc{background:linear-gradient(90deg,var(--blue),#60a5fa);}

.tc-bar.priv{background:linear-gradient(90deg,var(--green),#34d399);}

.tc-val{font-size:11px;font-weight:700;white-space:nowrap;color:var(--text2);}

.tc-legend{display:flex;gap:16px;margin-bottom:14px;}

.tc-leg{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--text2);}

.tc-leg-dot{width:12px;height:12px;border-radius:3px;}

.ldp-compare{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0;}

.ldp-col{border-radius:10px;overflow:hidden;border:1px solid var(--border);}

.ldp-head{padding:12px 16px;font-size:12px;font-weight: 500;}

.ldp-head.global{background:var(--blue-light);color:#1e3a8a;}

.ldp-head.local{background:var(--accent-light);color:#4c1d95;}

.ldp-body{padding:14px 16px;}

.ldp-item{font-size:12.5px;color:var(--text2);padding:6px 0;border-bottom:1px solid var(--border);line-height:1.5;display:flex;gap:8px;align-items:flex-start;}

.ldp-item:last-child{border-bottom:none;}

.ldp-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;margin-top:6px;}

.pate-flow{display:flex;flex-direction:column;gap:0;background:#0f172a;border-radius:12px;overflow:hidden;margin:22px 0;}

.pate-step{display:flex;align-items:center;gap:14px;padding:14px 20px;border-bottom:1px solid rgba(255,255,255,.06);}

.pate-step:last-child{border-bottom:none;}

.pate-icon{font-size:20px;width:36px;text-align:center;flex-shrink:0;}

.pate-body{flex:1;}

.pate-name{font-size:12px;font-weight: 500;color:#e2e8f0;margin-bottom:2px;}

.pate-desc{font-size:11px;color:rgba(255,255,255,.4);line-height:1.55;}

.pate-badge{font-size:10px;font-weight:700;padding:2px 8px;border-radius:4px;flex-shrink:0;}

.pb-priv{background:rgba(5,150,105,.2);color:#6ee7b7;}

.pb-pub{background:rgba(37,99,235,.2);color:#93c5fd;}

.pb-noise{background:rgba(220,38,38,.2);color:#fca5a5;}

.lib-row{display:flex;gap:12px;margin:22px 0;flex-wrap:wrap;}

.lib-card{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:16px 18px;flex:1;min-width:200px;}

.lib-name{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--text);margin-bottom:4px;}

.lib-org{font-size:10px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;}

.lib-desc{font-size:12.5px;color:var(--text2);line-height:1.6;}

@media(max-width:768px){.page-body{grid-template-columns:1fr;padding:24px 20px 60px;}.sidebar{position:static;}.hero-row{grid-template-columns:1fr;}.mod-hero{padding:36px 20px 32px;}.card{padding:24px 20px;}.ldp-compare,.nd-row,.dpi-row{grid-template-columns:1fr;}.lib-row{flex-direction:column;}}

.fl-arch{background:#0f172a;border-radius:12px;padding:24px;margin:22px 0;}

.fl-arch-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:18px;}

.fl-participants{display:flex;gap:8px;justify-content:center;margin-bottom:16px;flex-wrap:wrap;}

.fl-participant{background:rgba(124,58,237,.15);border:1px solid rgba(124,58,237,.3);border-radius:8px;padding:10px 14px;text-align:center;flex:1;min-width:90px;max-width:130px;}

.fl-p-icon{font-size:18px;margin-bottom:4px;}

.fl-p-label{font-size:10px;font-weight:700;color:#a78bfa;text-transform:uppercase;letter-spacing:.06em;}

.fl-p-detail{font-size:9px;color:rgba(255,255,255,.3);margin-top:2px;line-height:1.4;}

.fl-arrows{display:flex;justify-content:center;align-items:center;gap:6px;margin-bottom:8px;}

.fl-arrow-up{font-size:13px;color:rgba(124,58,237,.5);}

.fl-arrow-label{font-size:9px;color:rgba(255,255,255,.25);font-weight:600;letter-spacing:.05em;text-transform:uppercase;}

.fl-aggregator{background:rgba(5,150,105,.12);border:1px solid rgba(5,150,105,.3);border-radius:10px;padding:14px 20px;text-align:center;max-width:260px;margin:0 auto;}

.fl-agg-label{font-size:11px;font-weight: 500;color:#6ee7b7;margin-bottom:4px;}

.fl-agg-desc{font-size:10px;color:rgba(255,255,255,.3);line-height:1.5;}

.fl-round-steps{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap;}

.fl-round-step{flex:1;min-width:110px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:8px 10px;}

.fl-rs-num{font-size:10px;font-weight: 500;color:#a78bfa;margin-bottom:3px;}

.fl-rs-text{font-size:10px;color:rgba(255,255,255,.4);line-height:1.5;}

.fl-types{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0;}

.fl-type-col{border-radius:10px;overflow:hidden;border:1px solid var(--border);}

.fl-type-head{padding:12px 16px;}

.fl-type-head.device{background:#eff6ff;color:#1e3a8a;}

.fl-type-head.silo{background:var(--accent-light);color:#4c1d95;}

.fl-type-name{font-size:13px;font-weight: 500;letter-spacing:-.01em;}

.fl-type-sub{font-size:10px;font-weight:600;opacity:.65;margin-top:2px;}

.fl-type-body{padding:14px 16px;}

.fl-type-item{font-size:12.5px;color:var(--text2);padding:5px 0;border-bottom:1px solid var(--border);display:flex;gap:8px;line-height:1.5;}

.fl-type-item:last-child{border-bottom:none;}

.fl-type-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;margin-top:6px;}

.fedavg-steps{display:flex;flex-direction:column;gap:0;background:#0f172a;border-radius:12px;overflow:hidden;margin:22px 0;}

.fedavg-step{display:flex;align-items:flex-start;gap:14px;padding:15px 20px;border-bottom:1px solid rgba(255,255,255,.06);}

.fedavg-step:last-child{border-bottom:none;}

.fedavg-num{width:28px;height:28px;border-radius:50%;background:rgba(5,150,105,.2);border:1px solid rgba(5,150,105,.4);color:#6ee7b7;font-size:11px;font-weight: 500;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px;}

.fedavg-body{flex:1;}

.fedavg-name{font-size:12px;font-weight: 500;color:#e2e8f0;margin-bottom:3px;}

.fedavg-desc{font-size:11.5px;color:rgba(255,255,255,.45);line-height:1.6;}

.fedavg-formula{font-family:var(--mono);font-size:11px;color:#6ee7b7;margin-top:5px;padding:4px 8px;background:rgba(5,150,105,.08);border-radius:4px;display:inline-block;}

.threat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:22px 0;}

.threat-card{border-radius:10px;overflow:hidden;border:1px solid var(--border);}

.threat-head{padding:10px 14px;display:flex;align-items:center;gap:10px;}

.threat-head.red{background:var(--red-light);}

.threat-head.amber{background:var(--amber-light);}

.threat-icon{font-size:18px;}

.threat-name{font-size:12px;font-weight: 500;color:var(--text);letter-spacing:-.01em;}

.threat-tag{font-size:9px;font-weight:700;padding:2px 7px;border-radius:4px;margin-left:auto;}

.threat-tag.high{background:var(--red-light);color:var(--red);border:1px solid #fca5a5;}

.threat-tag.med{background:var(--amber-light);color:var(--amber);border:1px solid #fde68a;}

.threat-body{padding:12px 14px;}

.threat-desc{font-size:12.5px;color:var(--text2);line-height:1.6;margin-bottom:8px;}

.threat-attacker{font-size:11px;font-weight:600;color:var(--text3);}

.grad-inv{background:#0f172a;border-radius:12px;padding:24px;margin:22px 0;}

.gi-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.gi-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:8px;align-items:center;}

.gi-box{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:12px;text-align:center;}

.gi-box.red-border{border-color:rgba(220,38,38,.4);}

.gi-label{font-size:9px;font-weight:700;color:rgba(255,255,255,.35);text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px;}

.gi-value{font-size:12px;font-weight:700;color:#e2e8f0;line-height:1.4;}

.gi-arrow{color:rgba(220,38,38,.5);font-size:18px;text-align:center;}

.byz-compare{display:flex;flex-direction:column;gap:12px;margin:22px 0;}

.byz-row{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:16px 18px;display:flex;gap:16px;align-items:flex-start;}

.byz-method{font-size:13px;font-weight: 500;color:var(--text);width:180px;flex-shrink:0;letter-spacing:-.01em;}

.byz-desc{font-size:12.5px;color:var(--text2);line-height:1.6;flex:1;}

.byz-props{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px;}

.byz-pill{font-size:10px;font-weight:700;padding:2px 8px;border-radius:4px;}

.byz-ok{background:var(--green-light);color:var(--green);}

.byz-warn{background:var(--amber-light);color:var(--amber);}

.byz-bad{background:var(--red-light);color:var(--red);}

.secagg-flow{background:#0f172a;border-radius:12px;padding:24px;margin:22px 0;}

.sa-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.sa-phases{display:flex;flex-direction:column;gap:10px;}

.sa-phase{display:flex;align-items:flex-start;gap:12px;}

.sa-phase-num{width:24px;height:24px;border-radius:50%;background:rgba(37,99,235,.2);border:1px solid rgba(37,99,235,.4);color:#93c5fd;font-size:10px;font-weight: 500;display:flex;align-items:center;justify-content:center;flex-shrink:0;}

.sa-phase-body{flex:1;}

.sa-phase-name{font-size:12px;font-weight: 500;color:#e2e8f0;margin-bottom:2px;}

.sa-phase-desc{font-size:11px;color:rgba(255,255,255,.4);line-height:1.55;}

.defence-table{width:100%;border-collapse:separate;border-spacing:0;border-radius:10px;overflow:hidden;border:1px solid var(--border);margin:22px 0;font-size:12.5px;}

.defence-table thead{background:#0f172a;}

.defence-table th{padding:11px 14px;text-align:left;font-size:10px;font-weight:700;color:rgba(255,255,255,.5);text-transform:uppercase;letter-spacing:.08em;}

.defence-table td{padding:11px 14px;border-top:1px solid var(--border);vertical-align:top;color:var(--text2);}

.defence-table tbody tr:hover td{background:var(--bg);}

.def-pill{font-size:10px;font-weight:700;padding:2px 8px;border-radius:4px;white-space:nowrap;}

.def-strong{background:var(--green-light);color:var(--green);}

.def-partial{background:var(--amber-light);color:var(--amber);}

.def-none{background:var(--red-light);color:var(--red);}

.deploy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0;}

.deploy-card{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:16px 18px;}

.deploy-org{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);margin-bottom:5px;}

.deploy-name{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:6px;letter-spacing:-.01em;}

.deploy-desc{font-size:12px;color:var(--text2);line-height:1.6;}

.deploy-tags{display:flex;gap:5px;margin-top:8px;flex-wrap:wrap;}

.deploy-tag{font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px;background:var(--accent-light);color:var(--accent);}

.fw-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:22px 0;}

.fw-card{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:16px 18px;}

.fw-name{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--text);margin-bottom:3px;}

.fw-org{font-size:10px;font-weight:700;color:var(--text3);letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px;}

.fw-desc{font-size:12.5px;color:var(--text2);line-height:1.6;}

.fw-tags{display:flex;gap:5px;margin-top:8px;flex-wrap:wrap;}

.fw-tag{font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px;background:var(--bg);border:1px solid var(--border);color:var(--text2);}

@media(max-width:768px){.page-body{grid-template-columns:1fr;padding:24px 20px 60px;}.sidebar{position:static;}.hero-row{grid-template-columns:1fr;}.mod-hero{padding:36px 20px 32px;}.card{padding:24px 20px;}.fl-types,.threat-grid,.deploy-grid,.fw-grid{grid-template-columns:1fr;}.gi-flow{grid-template-columns:1fr;}.byz-row{flex-direction:column;}.byz-method{width:auto;}}

.smpc-overview{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0;}

.smpc-card{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:16px 18px;}

.smpc-icon{font-size:24px;margin-bottom:8px;}

.smpc-name{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:4px;letter-spacing:-.01em;}

.smpc-desc{font-size:12.5px;color:var(--text2);line-height:1.6;}

.adversary-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0;}

.adv-col{border-radius:10px;overflow:hidden;border:1px solid var(--border);}

.adv-head{padding:12px 16px;}

.adv-head.sh{background:var(--amber-light);color:#92400e;}

.adv-head.mal{background:var(--red-light);color:var(--red);}

.adv-name{font-size:13px;font-weight: 500;letter-spacing:-.01em;}

.adv-aka{font-size:10px;font-weight:600;opacity:.65;margin-top:2px;}

.adv-body{padding:14px 16px;}

.adv-item{font-size:12.5px;color:var(--text2);padding:5px 0;border-bottom:1px solid var(--border);display:flex;gap:8px;line-height:1.5;}

.adv-item:last-child{border-bottom:none;}

.adv-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;margin-top:6px;}

.ss-visual{background:#0f172a;border-radius:12px;padding:24px;margin:22px 0;}

.ss-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.ss-secret{background:rgba(124,58,237,.2);border:1px solid rgba(124,58,237,.4);border-radius:8px;padding:12px 18px;text-align:center;margin-bottom:16px;}

.ss-secret-label{font-size:9px;font-weight:700;color:#a78bfa;text-transform:uppercase;letter-spacing:.07em;margin-bottom:4px;}

.ss-secret-value{font-family:var(--mono);font-size:18px;font-weight: 500;color:#e2e8f0;}

.ss-arrow-row{display:flex;justify-content:center;gap:24px;margin-bottom:8px;}

.ss-arrow{font-size:16px;color:rgba(255,255,255,.2);}

.ss-shares{display:flex;gap:10px;justify-content:center;margin-bottom:16px;}

.ss-share{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:10px 14px;text-align:center;flex:1;}

.ss-share-label{font-size:9px;font-weight:700;color:rgba(255,255,255,.3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px;}

.ss-share-value{font-family:var(--mono);font-size:14px;font-weight:700;color:#e2e8f0;}

.ss-share-owner{font-size:9px;color:rgba(255,255,255,.25);margin-top:3px;}

.ss-property{font-size:11px;color:rgba(255,255,255,.35);text-align:center;line-height:1.6;padding:10px 0;border-top:1px solid rgba(255,255,255,.06);}

.add-ops{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0;}

.add-op-card{background:#0f172a;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:16px 18px;}

.aop-title{font-size:11px;font-weight: 500;color:#e2e8f0;margin-bottom:8px;letter-spacing:-.01em;}

.aop-step{font-size:11px;color:rgba(255,255,255,.4);padding:5px 0;border-bottom:1px solid rgba(255,255,255,.06);line-height:1.5;}

.aop-step:last-child{border-bottom:none;}

.aop-formula{font-family:var(--mono);font-size:11px;color:#a78bfa;display:block;margin-top:2px;}

.aop-badge{display:inline-block;font-size:9px;font-weight:700;padding:1px 6px;border-radius:3px;margin-top:4px;}

.aop-free{background:rgba(5,150,105,.2);color:#6ee7b7;}

.aop-comm{background:rgba(220,38,38,.15);color:#fca5a5;}

.gc-flow{background:#0f172a;border-radius:12px;padding:24px;margin:22px 0;}

.gc-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.gc-phases{display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:start;}

.gc-side{display:flex;flex-direction:column;gap:8px;}

.gc-party{font-size:10px;font-weight: 500;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.35);margin-bottom:6px;}

.gc-step{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:7px;padding:10px 12px;}

.gc-step-num{font-size:9px;font-weight:700;color:rgba(255,255,255,.25);margin-bottom:3px;}

.gc-step-text{font-size:11px;color:rgba(255,255,255,.55);line-height:1.5;}

.gc-step-badge{font-size:9px;font-weight:700;padding:2px 6px;border-radius:3px;margin-top:4px;display:inline-block;}

.gc-comm-col{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding-top:28px;}

.gc-comm-item{text-align:center;}

.gc-comm-arrow{font-size:18px;color:rgba(124,58,237,.4);}

.gc-comm-label{font-size:9px;color:rgba(255,255,255,.2);font-weight:600;letter-spacing:.04em;margin-top:3px;}

.ot-diagram{background:#0f172a;border-radius:12px;padding:24px;margin:22px 0;}

.ot-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.ot-flow{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center;}

.ot-party{border-radius:8px;padding:14px 16px;}

.ot-party.sender{background:rgba(37,99,235,.1);border:1px solid rgba(37,99,235,.25);}

.ot-party.receiver{background:rgba(124,58,237,.1);border:1px solid rgba(124,58,237,.25);}

.ot-party-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;margin-bottom:8px;}

.ot-party.sender .ot-party-label{color:#93c5fd;}

.ot-party.receiver .ot-party-label{color:#a78bfa;}

.ot-item{font-size:11px;color:rgba(255,255,255,.5);margin-bottom:4px;line-height:1.4;}

.ot-item strong{color:#e2e8f0;}

.ot-item.hidden{color:rgba(255,255,255,.2);text-decoration:line-through;}

.ot-middle{display:flex;flex-direction:column;align-items:center;gap:8px;}

.ot-arrow{font-size:16px;color:rgba(124,58,237,.4);}

.ot-label{font-size:9px;color:rgba(255,255,255,.2);font-weight:600;text-align:center;letter-spacing:.04em;}

.ot-guarantee{font-size:11px;color:rgba(255,255,255,.25);margin-top:14px;text-align:center;line-height:1.6;border-top:1px solid rgba(255,255,255,.06);padding-top:10px;}

.beaver-flow{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding: 20px;margin:22px 0;}

.bf-title{font-size:12px;font-weight: 500;color:var(--text);margin-bottom:4px;}

.bf-sub{font-size:12px;color:var(--text2);margin-bottom:16px;}

.bf-phases{display:grid;grid-template-columns:1fr 1fr;gap:14px;}

.bf-phase{border-radius:8px;padding:14px 16px;border:1px solid var(--border);}

.bf-phase.offline{background:#fef2f2;}

.bf-phase.online{background:var(--green-light);}

.bf-phase-title{font-size:11px;font-weight: 500;color:var(--text);margin-bottom:8px;display:flex;align-items:center;gap:6px;}

.bf-step{font-size:12px;color:var(--text2);margin-bottom:5px;line-height:1.5;}

.bf-formula{font-family:var(--mono);font-size:11px;color:var(--accent);display:block;margin-top:2px;}

.psi-diagram{margin:22px 0;display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:center;}

.psi-set{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:14px 16px;}

.psi-set-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text3);margin-bottom:8px;}

.psi-items{display:flex;flex-direction:column;gap:4px;}

.psi-item{font-size:12px;font-weight:600;padding:4px 8px;border-radius:5px;}

.psi-item.shared{background:var(--green-light);color:var(--green);}

.psi-item.private{background:var(--bg);color:var(--text2);border:1px solid var(--border);}

.psi-middle{text-align:center;}

.psi-protocol{font-size:11px;font-weight:700;color:var(--accent);margin-bottom:6px;}

.psi-output{background:var(--accent-light);border:1px solid var(--accent-mid);border-radius:8px;padding:10px 12px;font-size:12px;color:var(--accent);font-weight:700;text-align:center;}

.spdz-phases{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0;}

.spdz-phase{border-radius:10px;overflow:hidden;border:1px solid var(--border);}

.spdz-phase-head{padding:12px 16px;font-size:12px;font-weight: 500;letter-spacing:-.01em;}

.spdz-phase-head.offline{background:#fef2f2;color:var(--red);}

.spdz-phase-head.online{background:var(--green-light);color:var(--green);}

.spdz-phase-body{padding:14px 16px;}

.spdz-item{font-size:12.5px;color:var(--text2);padding:6px 0;border-bottom:1px solid var(--border);display:flex;gap:8px;line-height:1.5;}

.spdz-item:last-child{border-bottom:none;}

.spdz-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;margin-top:6px;}

.fhe-smpc-compare{width:100%;border-collapse:separate;border-spacing:0;border-radius:10px;overflow:hidden;border:1px solid var(--border);margin:22px 0;font-size:12.5px;}

.fhe-smpc-compare thead{background:#0f172a;}

.fhe-smpc-compare th{padding:11px 14px;text-align:left;font-size:10px;font-weight:700;color:rgba(255,255,255,.5);text-transform:uppercase;letter-spacing:.08em;}

.fhe-smpc-compare td{padding:11px 14px;border-top:1px solid var(--border);vertical-align:top;color:var(--text2);}

.fhe-smpc-compare tbody tr:hover td{background:var(--bg);}

.win-pill{font-size:10px;font-weight:700;padding:2px 8px;border-radius:4px;white-space:nowrap;}

.win-fhe{background:var(--accent-light);color:var(--accent);}

.win-smpc{background:var(--blue-light);color:var(--blue);}

.win-both{background:var(--green-light);color:var(--green);}

.app-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0;}

.app-card{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:14px 16px;}

.app-icon{font-size:22px;margin-bottom:8px;}

.app-name{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:4px;letter-spacing:-.01em;}

.app-desc{font-size:12px;color:var(--text2);line-height:1.6;}

.app-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px;}

.app-tag{font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px;background:var(--accent-light);color:var(--accent);}

.track-recap{display:flex;flex-direction:column;gap:0;border-radius:12px;overflow:hidden;border:1px solid var(--border);margin:22px 0;}

.recap-row{display:flex;align-items:center;gap:16px;padding:14px 18px;border-bottom:1px solid var(--border);}

.recap-row:last-child{border-bottom:none;}

.recap-mod{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight: 500;flex-shrink:0;}

.recap-body{flex:1;}

.recap-name{font-size:13px;font-weight: 500;color:var(--text);letter-spacing:-.01em;}

.recap-what{font-size:12px;color:var(--text2);margin-top:2px;}

.recap-tag{font-size:10px;font-weight:700;padding:2px 8px;border-radius:4px;white-space:nowrap;flex-shrink:0;}

.track-complete{background:linear-gradient(135deg,#064e3b 0%,#065f46 100%);border-radius:var(--rlg);padding:20px;display:flex;align-items:center;gap:24px;margin-top:4px;}

.tc-icon{width:52px;height:52px;background:rgba(255,255,255,.12);border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:26px;flex-shrink:0;}

.tc-body{flex:1;}

.tc-eyebrow{font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#6ee7b7;margin-bottom:5px;}

.tc-title{font-size:18px;font-weight: 500;color:#fff;letter-spacing:-.03em;margin-bottom:6px;}

.tc-desc{font-size:13px;color:rgba(255,255,255,.65);line-height:1.6;}

@media(max-width:768px){.page-body{grid-template-columns:1fr;padding:24px 20px 60px;}.sidebar{position:static;}.hero-row{grid-template-columns:1fr;}.mod-hero{padding:36px 20px 32px;}.card{padding:24px 20px;}.smpc-overview,.adversary-grid,.add-ops,.gc-phases,.spdz-phases,.fhe-smpc-compare,.app-grid,.fw-grid,.bf-phases{grid-template-columns:1fr;}.psi-diagram{grid-template-columns:1fr;}.ot-flow{grid-template-columns:1fr;}.gc-flow{grid-template-columns:1fr;}}

.mod-hero{background:linear-gradient(135deg,#0f172a 0%,#1e1b4b 50%,#312e81 100%);padding:52px 40px 44px;}

.mod-badge{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.1);color:rgba(255,255,255,.85);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:5px 12px;border-radius:20px;margin-bottom:18px;border:1px solid rgba(255,255,255,.15);}

.mod-sub{font-size:15px;color:rgba(255,255,255,.72);line-height:1.65;max-width:560px;margin-bottom:22px;}

.blog-ref{display:inline-flex;align-items:center;gap:6px;background:var(--bg2);border:1px solid var(--border);border-radius:6px;padding:4px 10px;font-size:11px;color:var(--text2);font-weight:600;margin-top:4px;text-decoration:none;transition:border-color .15s,color .15s;}

.blog-ref:hover{border-color:var(--accent);color:var(--accent);}

.blog-ref-icon{font-size:10px;}

.trust-break{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0;}

.trust-col{border-radius:10px;overflow:hidden;border:1px solid var(--border);}

.trust-head{padding:12px 16px;font-size:12px;font-weight: 500;letter-spacing:-.01em;}

.trust-head.old{background:var(--red-light);color:var(--red);}

.trust-head.new{background:var(--green-light);color:var(--green);}

.trust-body{padding:14px 16px;}

.trust-item{font-size:12.5px;color:var(--text2);padding:5px 0;border-bottom:1px solid var(--border);display:flex;gap:8px;line-height:1.5;}

.trust-item:last-child{border-bottom:none;}

.trust-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;margin-top:6px;}

.inf-gap{background:#0f172a;border-radius:12px;padding:24px;margin:22px 0;}

.ig-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:18px;}

.ig-pipeline{display:flex;align-items:stretch;gap:0;border-radius:8px;overflow:hidden;border:1px solid rgba(255,255,255,.06);}

.ig-stage{flex:1;padding:14px 12px;text-align:center;border-right:1px solid rgba(255,255,255,.06);}

.ig-stage:last-child{border-right:none;}

.ig-stage-icon{font-size:20px;margin-bottom:6px;}

.ig-stage-name{font-size:11px;font-weight: 500;color:#e2e8f0;margin-bottom:4px;}

.ig-stage-badge{font-size:9px;font-weight:700;padding:2px 7px;border-radius:4px;display:inline-block;}

.ig-safe{background:rgba(5,150,105,.2);color:#6ee7b7;}

.ig-danger{background:rgba(220,38,38,.2);color:#fca5a5;}

.ig-gap-label{margin-top:14px;background:rgba(220,38,38,.1);border:1px solid rgba(220,38,38,.2);border-radius:8px;padding:10px 14px;text-align:center;font-size:11px;color:#fca5a5;font-weight:600;line-height:1.5;}

.vi-paths{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0;}

.vi-path{border-radius:10px;overflow:hidden;border:1px solid var(--border);}

.vi-path-head{padding:12px 16px;}

.vi-path-head.enclave{background:#eff6ff;color:#1e3a8a;}

.vi-path-head.fhe{background:var(--accent-light);color:#4c1d95;}

.vi-path-name{font-size:13px;font-weight: 500;letter-spacing:-.01em;}

.vi-path-tag{font-size:10px;font-weight:600;opacity:.65;margin-top:2px;}

.vi-path-body{padding:14px 16px;}

.vi-item{font-size:12.5px;color:var(--text2);padding:5px 0;border-bottom:1px solid var(--border);display:flex;gap:8px;line-height:1.5;}

.vi-item:last-child{border-bottom:none;}

.vi-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;margin-top:6px;}

.zt-principles{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:22px 0;}

.zt-card{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding: 16px;}

.zt-icon{font-size:24px;margin-bottom:8px;}

.zt-name{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:4px;letter-spacing:-.01em;}

.zt-classic{font-size:11px;color:var(--text3);margin-bottom:8px;font-weight:600;}

.zt-ai{font-size:12.5px;color:var(--text2);line-height:1.6;}

.zt-ai strong{color:var(--text);}

.agent-id-problem{background:#0f172a;border-radius:12px;padding:24px;margin:22px 0;}

.aip-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.aip-compare{display:grid;grid-template-columns:1fr 1fr;gap:16px;}

.aip-col{border-radius:8px;padding:14px 16px;border:1px solid rgba(255,255,255,.08);}

.aip-col.bad{background:rgba(220,38,38,.06);}

.aip-col.good{background:rgba(5,150,105,.06);}

.aip-col-head{font-size:11px;font-weight: 500;margin-bottom:10px;}

.aip-col.bad .aip-col-head{color:#fca5a5;}

.aip-col.good .aip-col-head{color:#6ee7b7;}

.aip-line{font-size:11px;color:rgba(255,255,255,.4);padding:5px 0;border-bottom:1px solid rgba(255,255,255,.06);line-height:1.5;}

.aip-line:last-child{border-bottom:none;}

.aip-line strong{color:rgba(255,255,255,.7);}

.agentid-arch{background:#0f172a;border-radius:12px;padding:24px;margin:22px 0;}

.aa-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.aa-planes{display:grid;grid-template-columns:1fr 1fr;gap:12px;}

.aa-plane{border-radius:8px;padding:14px 16px;border:1px solid rgba(255,255,255,.08);}

.aa-plane.broker{background:rgba(37,99,235,.1);border-color:rgba(37,99,235,.2);}

.aa-plane.gateway{background:rgba(5,150,105,.08);border-color:rgba(5,150,105,.2);}

.aa-plane-name{font-size:12px;font-weight: 500;margin-bottom:8px;}

.aa-plane.broker .aa-plane-name{color:#93c5fd;}

.aa-plane.gateway .aa-plane-name{color:#6ee7b7;}

.aa-fn{font-size:11px;color:rgba(255,255,255,.35);padding:4px 0;border-bottom:1px solid rgba(255,255,255,.06);line-height:1.4;}

.aa-fn:last-child{border-bottom:none;}

.token-anatomy{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding: 20px;margin:22px 0;}

.ta-title{font-size:12px;font-weight: 500;color:var(--text);margin-bottom:14px;}

.ta-fields{display:flex;flex-direction:column;gap:8px;}

.ta-field{display:flex;align-items:flex-start;gap:12px;padding:10px 12px;background:var(--white);border:1px solid var(--border);border-radius:8px;}

.ta-field-key{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--accent);width:140px;flex-shrink:0;}

.ta-field-val{font-size:12.5px;color:var(--text2);line-height:1.5;}

.example-flow{display:flex;flex-direction:column;gap:0;background:#0f172a;border-radius:12px;overflow:hidden;margin:22px 0;}

.ef-step{display:flex;align-items:flex-start;gap:14px;padding:14px 20px;border-bottom:1px solid rgba(255,255,255,.06);}

.ef-num{width:28px;height:28px;border-radius:50%;font-size:11px;font-weight: 500;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px;}

.ef-name{font-size:12px;font-weight: 500;color:#e2e8f0;margin-bottom:3px;}

.ef-desc{font-size:11.5px;color:rgba(255,255,255,.4);line-height:1.6;}

.ef-code{font-family:var(--mono);font-size:10.5px;color:#a78bfa;margin-top:5px;padding:4px 8px;background:rgba(124,58,237,.08);border-radius:4px;display:inline-block;}

.ef-badge{font-size:10px;font-weight:700;padding:2px 8px;border-radius:4px;flex-shrink:0;margin-top:2px;}

.efb-green{background:rgba(5,150,105,.2);color:#6ee7b7;}

.efb-red{background:rgba(220,38,38,.15);color:#fca5a5;}

.efb-blue{background:rgba(37,99,235,.15);color:#93c5fd;}

.trust-planes{display:flex;flex-direction:column;gap:12px;margin:22px 0;}

.tp-row{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:16px 20px;display:flex;align-items:flex-start;gap:16px;}

.tp-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}

.tp-body{flex:1;}

.tp-plane{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);margin-bottom:3px;}

.tp-name{font-size:14px;font-weight: 500;color:var(--text);margin-bottom:4px;letter-spacing:-.02em;}

.tp-what{font-size:12.5px;color:var(--text2);line-height:1.6;}

.tp-product{font-size:11px;font-weight:700;padding:2px 8px;border-radius:4px;display:inline-block;margin-top:6px;}

.spiffe-compare{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0;}

.sc-col{border-radius:10px;padding:16px 18px;border:1px solid var(--border);}

.sc-name{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:4px;letter-spacing:-.01em;}

.sc-sub{font-size:10px;font-weight:700;color:var(--text3);margin-bottom:10px;text-transform:uppercase;letter-spacing:.06em;}

.sc-item{font-size:12.5px;color:var(--text2);padding:5px 0;border-bottom:1px solid var(--border);display:flex;gap:8px;line-height:1.5;}

.sc-item:last-child{border-bottom:none;}

.sc-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;margin-top:6px;}

@media(max-width:768px){.page-body{grid-template-columns:1fr;padding:24px 20px 60px;}.sidebar{position:static;}.hero-row{grid-template-columns:1fr;}.mod-hero{padding:36px 20px 32px;}.card{padding:24px 20px;}.trust-break,.vi-paths,.zt-principles,.aip-compare,.aa-planes,.spiffe-compare{grid-template-columns:1fr;}.ig-pipeline{flex-direction:column;}.tp-row{flex-direction:column;}.tp-icon{width:36px;height:36px;}}

.blog-ref{display:inline-flex;align-items:center;gap:6px;background:var(--bg2);border:1px solid var(--border);border-radius:6px;padding:4px 10px;font-size:11px;color:var(--text2);font-weight:600;margin-top:6px;text-decoration:none;transition:border-color .15s,color .15s;}

.ai-vs-trad{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0;}

.avt-col{border-radius:10px;overflow:hidden;border:1px solid var(--border);}

.avt-head{padding:12px 16px;font-size:12px;font-weight: 500;}

.avt-head.trad{background:var(--bg2);color:var(--text);}

.avt-head.ai{background:var(--accent-light);color:#4c1d95;}

.avt-body{padding:14px 16px;}

.avt-item{font-size:12.5px;color:var(--text2);padding:5px 0;border-bottom:1px solid var(--border);display:flex;gap:8px;line-height:1.5;}

.avt-item:last-child{border-bottom:none;}

.avt-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;margin-top:6px;}

.stack-diagram{background:#0f172a;border-radius:12px;padding:24px;margin:22px 0;}

.stack-layers{display:flex;flex-direction:column;gap:8px;}

.stack-layer{border-radius:8px;padding:14px 16px;border:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:14px;cursor:default;}

.sl-num{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight: 500;flex-shrink:0;}

.sl-body{flex:1;}

.sl-name{font-size:12px;font-weight: 500;color:#e2e8f0;margin-bottom:3px;}

.sl-signals{font-size:11px;color:rgba(255,255,255,.35);line-height:1.5;}

.sl-atlas{font-size:9px;font-weight:700;padding:2px 6px;border-radius:3px;background:rgba(220,38,38,.15);color:#fca5a5;white-space:nowrap;flex-shrink:0;}

.signal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0;}

.sig-card{background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:13px 14px;}

.sig-name{font-size:12px;font-weight:700;color:var(--text);margin-bottom:4px;}

.sig-desc{font-size:11.5px;color:var(--text2);line-height:1.55;}

.sig-threshold{font-size:10px;font-weight:700;padding:2px 7px;border-radius:4px;margin-top:6px;display:inline-block;}

.thr-green{background:var(--green-light);color:var(--green);}

.thr-amber{background:var(--amber-light);color:var(--amber);}

.thr-red{background:var(--red-light);color:var(--red);}

.distil-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:22px 0;}

.ds-box{background:#0f172a;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:16px;text-align:center;}

.ds-val{font-size:22px;font-weight:900;color:#e2e8f0;letter-spacing:-.03em;margin-bottom:4px;}

.ds-label{font-size:10px;font-weight:600;color:rgba(255,255,255,.3);line-height:1.4;}

.detect-table{width:100%;border-collapse:separate;border-spacing:0;border-radius:10px;overflow:hidden;border:1px solid var(--border);margin:22px 0;font-size:12.5px;}

.detect-table thead{background:#0f172a;}

.detect-table th{padding:11px 14px;text-align:left;font-size:10px;font-weight:700;color:rgba(255,255,255,.5);text-transform:uppercase;letter-spacing:.08em;}

.detect-table td{padding:11px 14px;border-top:1px solid var(--border);vertical-align:top;color:var(--text2);}

.detect-table tbody tr:hover td{background:var(--bg);}

.eff-pill{font-size:10px;font-weight:700;padding:2px 8px;border-radius:4px;white-space:nowrap;}

.eff-strong{background:var(--green-light);color:var(--green);}

.eff-partial{background:var(--amber-light);color:var(--amber);}

.eff-weak{background:var(--red-light);color:var(--red);}

.query-compare{background:#0f172a;border-radius:12px;padding:24px;margin:22px 0;}

.qc-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:14px;}

.qc-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}

.qc-col{border-radius:8px;padding:14px 16px;border:1px solid rgba(255,255,255,.08);}

.qc-col.single{background:rgba(220,38,38,.06);}

.qc-col.pop{background:rgba(5,150,105,.06);}

.qc-col-head{font-size:11px;font-weight: 500;margin-bottom:10px;}

.qc-col.single .qc-col-head{color:#fca5a5;}

.qc-col.pop .qc-col-head{color:#6ee7b7;}

.qc-line{font-size:11px;color:rgba(255,255,255,.35);padding:4px 0;border-bottom:1px solid rgba(255,255,255,.06);line-height:1.5;}

.qc-line:last-child{border-bottom:none;}

.qc-line strong{color:rgba(255,255,255,.6);}

.log-schema{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding: 20px;margin:22px 0;}

.ls-title{font-size:12px;font-weight: 500;color:var(--text);margin-bottom:14px;}

.ls-row{display:flex;align-items:flex-start;gap:12px;padding:9px 10px;background:var(--white);border:1px solid var(--border);border-radius:7px;margin-bottom:6px;}

.ls-row:last-child{margin-bottom:0;}

.ls-field{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--accent);width:170px;flex-shrink:0;}

.ls-val{font-family:var(--mono);font-size:11px;color:var(--green);width:160px;flex-shrink:0;}

.ls-why{font-size:11.5px;color:var(--text2);line-height:1.5;}

.metrics-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:22px 0;}

.metric-card{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:16px 18px;}

.mc-layer{font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);margin-bottom:6px;}

.mc-metrics{display:flex;flex-direction:column;gap:8px;}

.mc-metric{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid var(--border);}

.mc-metric:last-child{border-bottom:none;}

.mc-name{font-size:12px;font-weight:600;color:var(--text);}

.mc-thresholds{display:flex;gap:4px;}

.mc-thr{font-size:10px;font-weight:700;padding:2px 6px;border-radius:3px;}

.atlas-cards{display:flex;flex-direction:column;gap:10px;margin:22px 0;}

.atlas-card{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:14px 18px;display:flex;gap:14px;align-items:flex-start;}

.atlas-id{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--accent);background:var(--accent-light);padding:3px 8px;border-radius:5px;white-space:nowrap;flex-shrink:0;}

.atlas-body{flex:1;}

.atlas-name{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:3px;letter-spacing:-.01em;}

.atlas-desc{font-size:12.5px;color:var(--text2);line-height:1.6;}

.atlas-signal{font-size:11px;font-weight:700;color:var(--green);margin-top:4px;}

@media(max-width:768px){.page-body{grid-template-columns:1fr;padding:24px 20px 60px;}.sidebar{position:static;}.hero-row{grid-template-columns:1fr;}.mod-hero{padding:36px 20px 32px;}.card{padding:24px 20px;}.ai-vs-trad,.signal-grid,.distil-stats,.metrics-grid,.qc-row{grid-template-columns:1fr;}.stack-layer{flex-direction:column;}.ls-row{flex-direction:column;}}

.warn-box{background:var(--red-light);border:1px solid #fca5a5;border-left:3px solid var(--red);border-radius:8px;padding:14px 18px;margin-top:18px;}

.warn-text{font-size:13px;color:#991b1b;line-height:1.65;}

.amber-box{background:var(--amber-light);border:1px solid #fde68a;border-left:3px solid var(--amber);border-radius:8px;padding:14px 18px;margin-top:18px;}

.amber-text{font-size:13px;color:#92400e;line-height:1.65;}

.incident-types{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:22px 0;}

.inc-card{border-radius:10px;overflow:hidden;border:1px solid var(--border);}

.inc-head{padding:12px 16px;display:flex;align-items:center;gap:10px;}

.inc-head.red{background:var(--red-light);}

.inc-head.amber{background:var(--amber-light);}

.inc-head.blue{background:var(--blue-light);}

.inc-head.purple{background:var(--accent-light);}

.inc-icon{font-size:20px;}

.inc-name{font-size:13px;font-weight: 500;color:var(--text);letter-spacing:-.01em;}

.inc-severity{font-size:10px;font-weight:700;padding:2px 7px;border-radius:4px;margin-left:auto;}

.sev-crit{background:var(--red-light);color:var(--red);border:1px solid #fca5a5;}

.sev-high{background:var(--amber-light);color:var(--amber);border:1px solid #fde68a;}

.inc-body{padding:12px 16px;}

.inc-desc{font-size:12.5px;color:var(--text2);line-height:1.6;margin-bottom:8px;}

.inc-signal{font-size:11px;font-weight:600;color:var(--text3);}

.ir-lifecycle{background:#0f172a;border-radius:12px;padding:24px;margin:22px 0;}

.irl-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:18px;}

.irl-phases{display:flex;gap:8px;align-items:stretch;}

.irl-phase{flex:1;border-radius:8px;padding:14px 12px;text-align:center;border:1px solid rgba(255,255,255,.06);}

.irl-phase-num{font-size:11px;font-weight: 500;margin-bottom:6px;}

.irl-phase-name{font-size:12px;font-weight: 500;color:#e2e8f0;margin-bottom:6px;}

.irl-phase-desc{font-size:10px;color:rgba(255,255,255,.3);line-height:1.5;}

.irl-arrow{color:rgba(255,255,255,.15);font-size:18px;display:flex;align-items:center;flex-shrink:0;}

.playbook{background:#0f172a;border-radius:12px;overflow:hidden;margin:22px 0;}

.pb-header{padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.06);display:flex;align-items:center;gap:12px;}

.pb-badge{font-size:10px;font-weight:700;padding:3px 9px;border-radius:5px;letter-spacing:.05em;}

.pb-title{font-size:14px;font-weight: 500;color:#e2e8f0;letter-spacing:-.02em;}

.pb-steps{display:flex;flex-direction:column;gap:0;}

.pb-step{display:flex;align-items:flex-start;gap:14px;padding:13px 20px;border-bottom:1px solid rgba(255,255,255,.05);}

.pb-step:last-child{border-bottom:none;}

.pb-phase-tag{font-size:9px;font-weight:700;padding:2px 7px;border-radius:4px;white-space:nowrap;margin-top:3px;flex-shrink:0;min-width:70px;text-align:center;}

.phase-detect{background:rgba(220,38,38,.15);color:#fca5a5;}

.phase-contain{background:rgba(217,119,6,.15);color:#fcd34d;}

.phase-investigate{background:rgba(37,99,235,.15);color:#93c5fd;}

.phase-remediate{background:rgba(5,150,105,.15);color:#6ee7b7;}

.phase-verify{background:rgba(124,58,237,.15);color:#a78bfa;}

.pb-step-body{flex:1;}

.pb-step-title{font-size:12px;font-weight: 500;color:#e2e8f0;margin-bottom:3px;}

.pb-step-desc{font-size:11.5px;color:rgba(255,255,255,.4);line-height:1.6;}

.pb-step-tool{font-family:var(--mono);font-size:10.5px;color:#a78bfa;margin-top:4px;padding:3px 7px;background:rgba(124,58,237,.08);border-radius:4px;display:inline-block;}

.forensics-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:22px 0;}

.fa-card{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:16px 18px;}

.fa-source{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);margin-bottom:4px;}

.fa-name{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:6px;letter-spacing:-.01em;}

.fa-what{font-size:12.5px;color:var(--text2);line-height:1.6;margin-bottom:8px;}

.fa-fields{display:flex;flex-wrap:wrap;gap:4px;}

.fa-field{font-family:var(--mono);font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px;background:var(--accent-light);color:var(--accent);}

.contain-compare{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0;}

.cc-col{border-radius:10px;overflow:hidden;border:1px solid var(--border);}

.cc-head{padding:12px 16px;font-size:12px;font-weight: 500;}

.cc-head.trad{background:var(--bg2);color:var(--text);}

.cc-head.ai{background:var(--accent-light);color:#4c1d95;}

.cc-body{padding:14px 16px;}

.cc-item{font-size:12.5px;color:var(--text2);padding:5px 0;border-bottom:1px solid var(--border);display:flex;gap:8px;line-height:1.5;}

.cc-item:last-child{border-bottom:none;}

.cc-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;margin-top:6px;}

.ir-timeline{display:flex;flex-direction:column;gap:0;background:var(--bg2);border:1px solid var(--border);border-radius:12px;overflow:hidden;margin:22px 0;}

.tl-row{display:flex;align-items:flex-start;gap:16px;padding:13px 18px;border-bottom:1px solid var(--border);}

.tl-row:last-child{border-bottom:none;}

.tl-time{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--text3);width:60px;flex-shrink:0;padding-top:2px;}

.tl-phase{font-size:10px;font-weight:700;padding:2px 7px;border-radius:4px;flex-shrink:0;margin-top:1px;}

.tl-action{font-size:12.5px;color:var(--text2);line-height:1.5;flex:1;}

.tl-action strong{color:var(--text);}

.tl-owner{font-size:10px;font-weight:600;color:var(--text3);flex-shrink:0;}

.remed-cycle{display:flex;flex-direction:column;gap:8px;margin:22px 0;}

.rc-step{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:14px 18px;display:flex;gap:14px;align-items:flex-start;}

.rc-num{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight: 500;flex-shrink:0;}

.rc-body{flex:1;}

.rc-title{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:4px;letter-spacing:-.01em;}

.rc-desc{font-size:12.5px;color:var(--text2);line-height:1.6;}

.rc-tool{font-size:11px;font-weight:700;padding:2px 8px;border-radius:4px;display:inline-block;margin-top:4px;}

.comm-template{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:20px 22px;margin:22px 0;}

.ct-label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);margin-bottom:10px;}

.ct-field{display:flex;gap:12px;padding:8px 0;border-bottom:1px solid var(--border);}

.ct-field:last-child{border-bottom:none;}

.ct-key{font-size:11px;font-weight:700;color:var(--text);width:100px;flex-shrink:0;}

.ct-val{font-size:12.5px;color:var(--text2);flex:1;line-height:1.5;}

@media(max-width:768px){.page-body{grid-template-columns:1fr;padding:24px 20px 60px;}.sidebar{position:static;}.hero-row{grid-template-columns:1fr;}.mod-hero{padding:36px 20px 32px;}.card{padding:24px 20px;}.incident-types,.forensics-grid,.contain-compare,.irl-phases{grid-template-columns:1fr;flex-direction:column;}.irl-phases{flex-direction:column;}.irl-arrow{transform:rotate(90deg);}.tl-row{flex-wrap:wrap;}.tl-time{width:auto;}}

:root{--font:"Montserrat",sans-serif;--mono:"JetBrains Mono",monospace;--accent:#7c3aed;--accent-hover:#6d28d9;--accent-light:#f5f3ff;--accent-mid:#ede9fe;--text:#0f172a;--text2:#475569;--text3:#94a3b8;--bg:#f8fafc;--bg2:#f1f5f9;--white:#ffffff;--border:#e2e8f0;--border-dark:#cbd5e1;--green:#059669;--green-light:#ecfdf5;--amber:#d97706;--amber-light:#fffbeb;--red:#dc2626;--red-light:#fef2f2;--blue:#2563eb;--blue-light:#eff6ff;--teal:#0d9488;--teal-light:#f0fdfa;--rlg:14px;--sw:224px;--shadow:0 1px 3px rgba(15,23,42,.07),0 4px 16px rgba(15,23,42,.05);}

.fw-overview{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0;}

.fwo-card{border-radius:10px;overflow:hidden;border:1px solid var(--border);}

.fwo-head{padding:12px 16px;}

.fwo-name{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:2px;letter-spacing:-.01em;}

.fwo-owner{font-size:10px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.07em;}

.fwo-body{padding:12px 16px;}

.fwo-item{font-size:12px;color:var(--text2);padding:4px 0;border-bottom:1px solid var(--border);display:flex;gap:7px;line-height:1.5;}

.fwo-item:last-child{border-bottom:none;}

.fwo-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;margin-top:6px;}

.rmf-functions{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:22px 0;}

.rmf-card{border-radius:10px;overflow:hidden;border:1px solid var(--border);}

.rmf-head{padding:12px 16px;display:flex;align-items:center;gap:10px;}

.rmf-letter{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:900;flex-shrink:0;}

.rmf-name{font-size:13px;font-weight: 500;color:var(--text);letter-spacing:-.01em;}

.rmf-one{font-size:11px;color:var(--text3);margin-top:1px;}

.rmf-body{padding:12px 16px;}

.rmf-subcats{display:flex;flex-direction:column;gap:4px;}

.rmf-sub{font-size:12px;color:var(--text2);padding:4px 8px;background:var(--bg2);border-radius:5px;border:1px solid var(--border);}

.rmf-sub-id{font-family:var(--mono);font-size:10px;color:var(--text3);margin-right:4px;}

.rmf-evidence{font-size:11px;font-weight:700;margin-top:6px;display:flex;align-items:center;gap:5px;}

.risk-tiers{display:flex;flex-direction:column;gap:8px;margin:22px 0;}

.rt-row{border-radius:10px;border:1px solid var(--border);overflow:hidden;display:flex;}

.rt-tier{width:120px;flex-shrink:0;padding:14px 16px;display:flex;flex-direction:column;justify-content:center;}

.rt-label{font-size:12px;font-weight: 500;color:#fff;letter-spacing:-.01em;}

.rt-badge{font-size:10px;font-weight:600;color:rgba(255,255,255,.65);margin-top:2px;}

.rt-content{padding:14px 16px;flex:1;}

.rt-desc{font-size:12.5px;color:var(--text2);line-height:1.6;margin-bottom:6px;}

.rt-examples{display:flex;flex-wrap:wrap;gap:4px;}

.rt-example{font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px;background:var(--bg2);color:var(--text2);border:1px solid var(--border);}

.obligations-table{width:100%;border-collapse:separate;border-spacing:0;border-radius:10px;overflow:hidden;border:1px solid var(--border);margin:22px 0;font-size:12.5px;}

.obligations-table thead{background:#0f172a;}

.obligations-table th{padding:11px 14px;text-align:left;font-size:10px;font-weight:700;color:rgba(255,255,255,.5);text-transform:uppercase;letter-spacing:.08em;}

.obligations-table td{padding:11px 14px;border-top:1px solid var(--border);vertical-align:top;color:var(--text2);}

.obligations-table tbody tr:hover td{background:var(--bg);}

.ob-product{font-size:10px;font-weight:700;padding:2px 7px;border-radius:4px;white-space:nowrap;display:inline-block;}

.ob-vectax{background:var(--accent-light);color:var(--accent);}

.ob-agentiq{background:var(--green-light);color:var(--green);}

.ob-discover{background:var(--teal-light);color:var(--teal);}

.ob-agentid{background:var(--blue-light);color:var(--blue);}

.ob-combo{background:var(--bg2);color:var(--text2);border:1px solid var(--border);}

.iso-domains{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:22px 0;}

.iso-card{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:16px 18px;}

.iso-clause{font-family:var(--mono);font-size:10px;font-weight:700;color:var(--text3);margin-bottom:4px;}

.iso-name{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:6px;letter-spacing:-.01em;}

.iso-desc{font-size:12.5px;color:var(--text2);line-height:1.6;margin-bottom:8px;}

.iso-evidence{display:flex;flex-wrap:wrap;gap:4px;}

.gdpr-articles{display:flex;flex-direction:column;gap:10px;margin:22px 0;}

.gdpr-row{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:14px 18px;display:flex;gap:14px;}

.gdpr-article{font-family:var(--mono);font-size:12px;font-weight: 500;color:var(--accent);width:90px;flex-shrink:0;padding-top:2px;}

.gdpr-body{flex:1;}

.gdpr-name{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:4px;letter-spacing:-.01em;}

.gdpr-desc{font-size:12.5px;color:var(--text2);line-height:1.6;}

.gdpr-trigger{font-size:11px;font-weight:700;color:var(--red);margin-top:4px;}

.gdpr-map{font-size:11px;font-weight:700;margin-top:4px;display:flex;align-items:center;gap:5px;}

.compliance-map{width:100%;border-collapse:separate;border-spacing:0;border-radius:10px;overflow:hidden;border:1px solid var(--border);margin:22px 0;font-size:12px;}

.compliance-map thead{background:#0f172a;}

.compliance-map th{padding:10px 12px;text-align:left;font-size:10px;font-weight:700;color:rgba(255,255,255,.5);text-transform:uppercase;letter-spacing:.07em;}

.compliance-map td{padding:10px 12px;border-top:1px solid var(--border);vertical-align:top;color:var(--text2);}

.compliance-map tbody tr:hover td{background:var(--bg);}

.cm-product-tag{font-size:10px;font-weight:700;padding:2px 6px;border-radius:3px;display:inline-block;margin-bottom:2px;}

.cov-pill{font-size:10px;font-weight:700;padding:2px 7px;border-radius:4px;}

.cov-direct{background:var(--green-light);color:var(--green);}

.cov-partial{background:var(--amber-light);color:var(--amber);}

.cov-none{background:var(--bg2);color:var(--text3);border:1px solid var(--border);}

.evidence-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:22px 0;}

.ev-card{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:16px 18px;}

.ev-product{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);margin-bottom:4px;}

.ev-name{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:6px;letter-spacing:-.01em;}

.ev-artifacts{display:flex;flex-direction:column;gap:4px;}

.ev-artifact{font-size:12px;color:var(--text2);padding:4px 8px;background:var(--white);border-radius:5px;border:1px solid var(--border);display:flex;gap:6px;align-items:flex-start;}

.ev-art-icon{flex-shrink:0;margin-top:1px;}

.ev-frameworks{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px;}

.ev-fw{font-size:10px;font-weight:700;padding:2px 6px;border-radius:3px;}

@media(max-width:768px){.page-body{grid-template-columns:1fr;padding:24px 20px 60px;}.sidebar{position:static;}.hero-row{grid-template-columns:1fr;}.mod-hero{padding:36px 20px 32px;}.card{padding:24px 20px;}.fw-overview,.rmf-functions,.iso-domains,.evidence-grid{grid-template-columns:1fr;}.rt-row{flex-direction:column;}.rt-tier{width:auto;}.gdpr-row{flex-direction:column;}.compliance-map{font-size:11px;}}

.econ-compare{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0;}

.ec-col{border-radius:10px;overflow:hidden;border:1px solid var(--border);}

.ec-head{padding:12px 16px;font-size:12px;font-weight: 500;}

.ec-head.before{background:var(--bg2);color:var(--text);}

.ec-head.after{background:var(--red-light);color:var(--red);}

.ec-body{padding:14px 16px;}

.ec-item{font-size:12.5px;color:var(--text2);padding:5px 0;border-bottom:1px solid var(--border);display:flex;gap:8px;line-height:1.5;}

.ec-item:last-child{border-bottom:none;}

.ec-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;margin-top:6px;}

.attack-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0;}

.atk-card{border-radius:10px;overflow:hidden;border:1px solid var(--border);}

.atk-head{padding:10px 14px;display:flex;align-items:center;gap:8px;}

.atk-icon{font-size:18px;}

.atk-name{font-size:12px;font-weight: 500;color:var(--text);letter-spacing:-.01em;}

.atk-body{padding:10px 14px;}

.atk-desc{font-size:12px;color:var(--text2);line-height:1.6;margin-bottom:6px;}

.atk-scale{font-size:10px;font-weight:700;padding:2px 7px;border-radius:4px;display:inline-block;}

.scale-massive{background:var(--red-light);color:var(--red);}

.scale-high{background:var(--amber-light);color:var(--amber);}

.scale-medium{background:var(--blue-light);color:var(--blue);}

.phish-flow{background:#0f172a;border-radius:12px;padding:24px;margin:22px 0;}

.pf-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:18px;}

.pf-steps{display:flex;flex-direction:column;gap:8px;}

.pf-step{display:flex;align-items:flex-start;gap:12px;padding:10px 14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06);border-radius:7px;}

.pf-num{font-size:10px;font-weight: 500;color:#a78bfa;width:20px;flex-shrink:0;padding-top:2px;}

.pf-content{flex:1;}

.pf-action{font-size:12px;font-weight:700;color:#e2e8f0;margin-bottom:2px;}

.pf-detail{font-size:11px;color:rgba(255,255,255,.35);line-height:1.5;}

.pf-badge{font-size:9px;font-weight:700;padding:2px 7px;border-radius:3px;white-space:nowrap;flex-shrink:0;margin-top:3px;}

.pf-ai{background:rgba(220,38,38,.15);color:#fca5a5;}

.pf-human{background:rgba(255,255,255,.08);color:rgba(255,255,255,.35);}

.ba-compare{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0;}

.ba-col{border-radius:10px;padding:16px 18px;border:1px solid var(--border);}

.ba-col.before{background:var(--bg2);}

.ba-col.after{background:var(--red-light);}

.ba-label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;}

.ba-col.before .ba-label{color:var(--text3);}

.ba-col.after .ba-label{color:var(--red);}

.ba-item{font-size:12.5px;color:var(--text2);padding:4px 0;border-bottom:1px solid rgba(0,0,0,.06);display:flex;gap:7px;line-height:1.5;}

.ba-item:last-child{border-bottom:none;}

.ba-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;margin-top:7px;}

.discover-cats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:22px 0;}

.dc-cat{background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:12px 14px;}

.dc-num{font-size:10px;font-weight: 500;color:var(--accent);margin-bottom:4px;}

.dc-name{font-size:12px;font-weight:700;color:var(--text);margin-bottom:3px;}

.dc-desc{font-size:11px;line-height:1.5;}

.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:22px 0;}

.stat-box{background:#0f172a;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:18px;text-align:center;}

.stat-val{font-size:24px;font-weight:900;color:#e2e8f0;letter-spacing:-.03em;margin-bottom:4px;}

.stat-label{font-size:10px;font-weight:600;color:rgba(255,255,255,.3);line-height:1.4;}

.defence-map{display:flex;flex-direction:column;gap:10px;margin:22px 0;}

.dm-row{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:14px 18px;display:flex;gap:14px;align-items:flex-start;}

.dm-attack{font-size:12px;font-weight:700;color:var(--text);width:180px;flex-shrink:0;padding-top:2px;}

.dm-body{flex:1;}

.dm-defence{font-size:12.5px;color:var(--text2);line-height:1.6;}

.dm-product{font-size:10px;font-weight:700;padding:2px 7px;border-radius:4px;display:inline-block;margin-top:4px;}

.dm-agentiq{background:var(--green-light);color:var(--green);}

.dm-discover{background:var(--teal-light);color:var(--teal);}

.dm-vectax{background:var(--accent-light);color:var(--accent);}

.dm-agentid{background:var(--blue-light);color:var(--blue);}

.rag-flow{background:#0f172a;border-radius:12px;padding:24px;margin:22px 0;}

.rf-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:16px;}

.rf-pipeline{display:flex;align-items:stretch;gap:0;border-radius:8px;overflow:hidden;border:1px solid rgba(255,255,255,.06);}

.rf-stage{flex:1;padding:14px 10px;text-align:center;border-right:1px solid rgba(255,255,255,.06);}

.rf-stage:last-child{border-right:none;}

.rf-stage-icon{font-size:18px;margin-bottom:5px;}

.rf-stage-name{font-size:10px;font-weight: 500;color:#e2e8f0;margin-bottom:4px;}

.rf-stage.poisoned{background:rgba(220,38,38,.07);}

.rf-badge{font-size:9px;font-weight:700;padding:2px 6px;border-radius:3px;display:inline-block;}

.rf-safe{background:rgba(5,150,105,.2);color:#6ee7b7;}

.rf-danger{background:rgba(220,38,38,.2);color:#fca5a5;}

.track-complete{display:flex;flex-direction:column;gap:10px;margin:22px 0;}

.tc-row{display:flex;align-items:center;gap:14px;padding:13px 18px;background:var(--bg2);border:1px solid var(--border);border-radius:10px;}

.tc-mod{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight: 500;flex-shrink:0;}

.tc-name{font-size:13px;font-weight: 500;color:var(--text);letter-spacing:-.01em;}

.tc-what{font-size:12px;color:var(--text2);margin-top:2px;}

.tc-tag{font-size:10px;font-weight:700;padding:2px 7px;border-radius:4px;white-space:nowrap;flex-shrink:0;}

.track-complete-banner{background:linear-gradient(135deg,#064e3b 0%,#065f46 100%);border-radius:var(--rlg);padding:20px;display:flex;align-items:center;gap:24px;margin-top:12px;}

.tcb-icon{width:52px;height:52px;background:rgba(255,255,255,.12);border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:26px;flex-shrink:0;}

.tcb-body{flex:1;}

.tcb-eyebrow{font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#6ee7b7;margin-bottom:5px;}

.tcb-title{font-size:18px;font-weight: 500;color:#fff;letter-spacing:-.03em;margin-bottom:5px;}

.tcb-desc{font-size:13px;color:rgba(255,255,255,.65);line-height:1.6;}

@media(max-width:768px){.page-body{grid-template-columns:1fr;padding:24px 20px 60px;}.sidebar{position:static;}.hero-row{grid-template-columns:1fr;}.mod-hero{padding:36px 20px 32px;}.card{padding:24px 20px;}.econ-compare,.attack-grid,.ba-compare,.discover-cats,.stats-row,.defence-map>.dm-row{flex-direction:column;}.econ-compare,.attack-grid,.ba-compare,.discover-cats,.stats-row{grid-template-columns:1fr;}.dm-row{flex-direction:column;}.dm-attack{width:auto;}.rf-pipeline{flex-direction:column;}}

.mod-link-name{font-size:12px;font-weight:600;color:var(--text);}

.blog-ref{display:inline-flex;align-items:center;gap:6px;background:var(--bg2);border:1px solid var(--border);border-radius:6px;padding:4px 10px;font-size:11px;color:var(--text2);font-weight:600;margin-top:8px;text-decoration:none;transition:border-color .15s,color .15s;}

.distinction{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:22px 0;border-radius:12px;overflow:hidden;border:1px solid var(--border);}

.dist-col{padding:20px 22px;}

.dist-col.left{background:var(--accent-light);border-right:1px solid var(--accent-mid);}

.dist-col.right{background:#eff6ff;}

.dist-label{font-size:10px;font-weight: 500;letter-spacing:.09em;text-transform:uppercase;margin-bottom:8px;}

.dist-col.left .dist-label{color:var(--accent);}

.dist-col.right .dist-label{color:var(--blue);}

.dist-title{font-size:15px;font-weight:900;color:var(--text);margin-bottom:10px;letter-spacing:-.02em;}

.dist-desc{font-size:13px;color:var(--text2);line-height:1.65;margin-bottom:10px;}

.dist-owns{font-size:11px;font-weight:700;}

.dist-col.left .dist-owns{color:var(--accent);}

.dist-col.right .dist-owns{color:var(--blue);}

.dist-examples{margin-top:8px;display:flex;flex-direction:column;gap:4px;}

.dist-ex{font-size:11.5px;color:var(--text2);padding:4px 8px;border-radius:5px;display:flex;gap:6px;}

.dist-col.left .dist-ex{background:rgba(124,58,237,.07);}

.dist-col.right .dist-ex{background:rgba(37,99,235,.07);}

.attack-surface-diagram{background:#0f172a;border-radius:12px;padding:24px;margin:22px 0;}

.asd-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:18px;}

.asd-layers{display:flex;flex-direction:column;gap:6px;}

.asd-layer{display:flex;align-items:center;gap:14px;padding:12px 16px;border-radius:8px;border:1px solid rgba(255,255,255,.06);}

.asd-icon{font-size:18px;flex-shrink:0;width:28px;text-align:center;}

.asd-body{flex:1;}

.asd-name{font-size:12px;font-weight: 500;color:#e2e8f0;margin-bottom:2px;}

.asd-desc{font-size:11px;color:rgba(255,255,255,.33);line-height:1.5;}

.asd-badge{font-size:9px;font-weight:700;padding:2px 7px;border-radius:3px;white-space:nowrap;flex-shrink:0;}

.badge-new{background:rgba(220,38,38,.2);color:#fca5a5;}

.badge-exists{background:rgba(5,150,105,.15);color:#6ee7b7;}

.badge-harder{background:rgba(217,119,6,.15);color:#fcd34d;}

.compare-table{width:100%;border-collapse:separate;border-spacing:0;border-radius:12px;overflow:hidden;border:1px solid var(--border);margin:22px 0;font-size:13px;}

.compare-table thead{background:#0f172a;}

.compare-table th{padding:12px 16px;text-align:left;font-size:10px;font-weight:700;color:rgba(255,255,255,.45);text-transform:uppercase;letter-spacing:.08em;}

.compare-table td{padding:12px 16px;border-top:1px solid var(--border);vertical-align:top;color:var(--text2);}

.compare-table tbody tr:hover td{background:var(--bg);}

.compare-table td:first-child{font-weight:700;color:var(--text);font-size:12.5px;}

.td-bad{color:var(--red);}

.td-ok{color:var(--green);}

.seven-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:22px 0;}

.sev-card{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:16px 18px;}

.sev-num{font-size:11px;font-weight: 500;color:var(--accent);margin-bottom:4px;}

.sev-title{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:5px;letter-spacing:-.01em;}

.sev-desc{font-size:12.5px;color:var(--text2);line-height:1.6;}

.sev-card.full{grid-column:1 / -1;background:var(--accent-light);border-color:var(--accent-mid);}

.sev-card.full .sev-num{color:var(--accent);}

.safety-security{display:grid;grid-template-columns:1fr 56px 1fr;gap:0;margin:22px 0;align-items:center;}

.ss-col{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:16px 18px;}

.ss-label{font-size:10px;font-weight: 500;letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;}

.ss-col:first-child .ss-label{color:var(--teal);}

.ss-col:last-child .ss-label{color:var(--accent);}

.ss-title{font-size:14px;font-weight: 500;color:var(--text);margin-bottom:8px;}

.ss-item{font-size:12px;color:var(--text2);padding:3px 0;display:flex;gap:6px;}

.ss-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;margin-top:6px;}

.ss-mid{text-align:center;font-size:10px;font-weight:700;color:var(--text3);padding:8px;}

.related-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:22px 0;}

.related-card{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:14px 16px;text-decoration:none;transition:border-color .15s,background .15s;display:block;}

.related-card:hover{border-color:var(--accent);background:var(--accent-light);}

.related-card.path-a:hover{border-color:var(--blue);background:var(--blue-light);}

.related-card.path-b:hover{border-color:var(--green);background:var(--green-light);}

.related-card.path-c:hover{border-color:var(--red);background:var(--red-light);}

.related-card.path-d:hover{border-color:var(--teal);background:var(--teal-light);}

.rc-eyebrow{font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px;color:var(--text3);}

.rc-title{font-size:12.5px;font-weight: 500;color:var(--text);margin-bottom:3px;}

.rc-desc{font-size:11.5px;color:var(--text2);line-height:1.5;}

.rc-arrow{font-size:11px;font-weight:700;color:var(--text3);margin-top:6px;}

.practice-card{background:linear-gradient(135deg,#1e1b4b 0%,#3b1f6e 100%);border-radius:var(--rlg);padding: 20px;display:flex;flex-direction:column;gap:14px;margin-top:22px;}

.pc-top{display:flex;align-items:center;gap:14px;}

.pc-icon{width:40px;height:40px;background:rgba(255,255,255,.12);border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}

.pc-head{}

.pc-eyebrow{font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#a78bfa;margin-bottom:3px;}

.pc-title{font-size:14px;font-weight: 500;color:#fff;letter-spacing:-.025em;line-height:1.25;}

.pc-desc{font-size:12.5px;line-height:1.65;}

@media(max-width:768px){.page-body{grid-template-columns:1fr;padding:24px 20px 60px;}.sidebar{position:static;}.hero-row{grid-template-columns:1fr;}.mod-hero{padding:36px 20px 32px;}.card{padding:24px 20px;}.distinction,.seven-grid,.safety-security,.related-grid{grid-template-columns:1fr;}.safety-security{gap:10px;}.ss-mid{display:none;}}

.three-layers{background:#0f172a;border-radius:var(--rlg);padding:26px 30px;margin:22px 0;}

.tl-title{font-size:13px;font-weight: 500;color:#e2e8f0;letter-spacing:-.02em;margin-bottom:5px;}

.tl-sub{font-size:12px;color:rgba(255,255,255,.35);margin-bottom:18px;line-height:1.6;}

.tl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}

.tl-card{border-radius:9px;padding:16px;border:1px solid rgba(255,255,255,.07);}

.tl-data{background:rgba(124,58,237,.08);}

.tl-model{background:rgba(37,99,235,.08);}

.tl-usage{background:rgba(220,38,38,.06);}

.tl-num{font-size:9px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;margin-bottom:8px;}

.tl-data .tl-num{color:#a78bfa;}

.tl-model .tl-num{color:#93c5fd;}

.tl-usage .tl-num{color:#fca5a5;}

.tl-icon{font-size:20px;margin-bottom:7px;}

.tl-name{font-size:13px;font-weight: 500;color:#e2e8f0;margin-bottom:6px;}

.tl-desc{font-size:11.5px;color:rgba(255,255,255,.38);line-height:1.6;margin-bottom:10px;}

.tl-examples{display:flex;flex-direction:column;gap:3px;}

.tl-ex{font-size:10px;font-weight:600;color:rgba(255,255,255,.5);padding:2px 0;border-bottom:1px solid rgba(255,255,255,.05);}

.tl-ex:last-child{border-bottom:none;}

.terms-block{background:var(--white);border:1px solid var(--border);border-radius:var(--rlg);padding:20px;box-shadow:var(--shadow);margin:0;}

.terms-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px;}

.terms-label{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:3px;}

.terms-title{font-size:16px;font-weight: 500;color:var(--text);letter-spacing:-.03em;}

.terms-all-link{font-family:var(--font);font-size:12px;font-weight:700;color:var(--accent);text-decoration:none;white-space:nowrap;padding:6px 12px;border:1.5px solid var(--accent-mid);border-radius:7px;background:var(--accent-light);transition:background .15s;}

.terms-all-link:hover{background:var(--accent-mid);}

.terms-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px;}

.term-item{background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:11px 14px;display:flex;flex-direction:column;gap:4px;}

.term-type{font-size:9px;font-weight:700;padding:2px 6px;border-radius:3px;width:fit-content;letter-spacing:.05em;text-transform:uppercase;}

.term-attack{background:var(--red-light);color:var(--red);}

.term-concept{background:var(--blue-light);color:var(--blue);}

.term-defence{background:var(--green-light);color:var(--green);}

.term-framework{background:var(--accent-light);color:var(--accent);}

.term-name{font-size:12.5px;font-weight: 500;color:var(--text);letter-spacing:-.01em;}

.term-def{font-size:11.5px;color:var(--text2);line-height:1.55;}

.terms-footer{border-top:1px solid var(--border);padding-top:14px;text-align:center;}

.terms-more-btn{font-family:var(--font);font-size:13px;font-weight:700;color:var(--accent);text-decoration:none;background:var(--accent-light);border:1.5px solid var(--accent-mid);padding:9px 22px;border-radius:8px;display:inline-flex;align-items:center;gap:6px;transition:background .15s;}

.terms-more-btn:hover{background:var(--accent-mid);}

.product-nudge{background:var(--bg2);border:1px solid var(--border);border-radius:var(--rlg);padding:24px 28px;margin:0;}

.pn-eyebrow{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:4px;}

.pn-title{font-size:16px;font-weight: 500;color:var(--text);letter-spacing:-.03em;margin-bottom:16px;}

.pn-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}

.pn-item{background:var(--white);border:1px solid var(--border);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:7px;}

.pn-badge{font-size:11px;font-weight: 500;padding:4px 10px;border-radius:5px;width:fit-content;}

.pn-desc{font-size:12px;color:var(--text2);line-height:1.6;flex:1;}

.pn-link{font-family:var(--font);font-size:11px;font-weight:700;color:var(--accent);text-decoration:none;transition:color .15s;}

.pn-link:hover{color:var(--accent-hover);}

@media(max-width:768px){.tl-grid{grid-template-columns:1fr;}.terms-grid{grid-template-columns:1fr;}.pn-grid{grid-template-columns:1fr 1fr;}.terms-header{flex-direction:column;}}

.controls-grid{border:1px solid var(--border);border-radius:12px;overflow:hidden;margin:22px 0;}

.ctrl-row{display:grid;grid-template-columns:180px 1fr 1.3fr;border-bottom:1px solid var(--border);}

.ctrl-row:last-child{border-bottom:none;}

.ctrl-head{background:#0f172a;}

.ctrl-col{padding:11px 14px;font-size:12.5px;color:var(--text2);line-height:1.55;}

.ctrl-head .ctrl-col{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:rgba(255,255,255,.45);}

.ctrl-name-col{border-right:1px solid var(--border);}

.ctrl-for-col{border-right:1px solid var(--border);}

.ctrl-label{font-weight:700;color:var(--text);font-size:12px;}

.ctrl-gap{color:var(--amber);margin-right:5px;}

.ctrl-miss-col{color:var(--red);font-size:12px;}

@media(max-width:768px){.ctrl-row{grid-template-columns:1fr;}.ctrl-name-col,.ctrl-for-col{border-right:none;border-bottom:1px solid var(--border);}}

.tl-mirror-row{margin-top:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,.08);}

.tl-mirror-label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.3);margin-bottom:10px;}

.tl-mirror-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}

.tl-mirror-item{background:rgba(255,255,255,.04);border:1px solid;border-radius:8px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;}

.tl-mirror-badge{font-size:10px;font-weight: 500;padding:3px 8px;border-radius:4px;width:fit-content;}

.tl-mirror-text{font-size:11.5px;color:rgba(255,255,255,.45);line-height:1.55;flex:1;}

.tl-mirror-link{font-family:var(--font);font-size:11px;font-weight:700;color:rgba(255,255,255,.5);text-decoration:none;transition:color .15s;}

.tl-mirror-link:hover{color:#fff;}

@media(max-width:768px){.tl-mirror-grid{grid-template-columns:1fr;}}

.dist-title{font-size:15px;font-weight:900;color:var(--text);margin-bottom:8px;letter-spacing:-.02em;}

.dist-desc{font-size:13px;color:var(--text2);line-height:1.65;}

.dist-owns{font-size:11px;font-weight:700;margin-top:8px;}

.attack-cats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0;}

.atk-head{padding:12px 14px;display:flex;align-items:center;gap:8px;}

.atk-example{font-size:11px;font-weight:600;color:var(--text3);padding:4px 8px;background:var(--bg2);border-radius:4px;border:1px solid var(--border);}

.atk-sev{font-size:9px;font-weight:700;padding:2px 6px;border-radius:3px;display:inline-block;margin-top:6px;}

.sev-crit{background:var(--red-light);color:var(--red);}

.sev-high{background:var(--amber-light);color:var(--amber);}

.sev-med{background:var(--blue-light);color:var(--blue);}

.incident-timeline{display:flex;flex-direction:column;gap:0;margin:22px 0;}

.incident{display:flex;gap:0;position:relative;}

.incident::before{content:"";position:absolute;left:19px;top:36px;bottom:-1px;width:2px;background:var(--border);z-index:0;}

.incident:last-child::before{display:none;}

.inc-left{flex-shrink:0;width:40px;display:flex;flex-direction:column;align-items:center;padding-top:14px;z-index:1;}

.inc-dot{width:12px;height:12px;border-radius:50%;border:2px solid;flex-shrink:0;}

.inc-right{flex:1;padding:12px 0 20px 18px;}

.inc-date{font-size:10px;font-weight:700;letter-spacing:.06em;color:var(--text3);margin-bottom:4px;}

.inc-name{font-size:14px;font-weight: 500;color:var(--text);margin-bottom:6px;letter-spacing:-.02em;}

.inc-desc{font-size:13px;color:var(--text2);line-height:1.65;margin-bottom:8px;}

.inc-lesson{font-size:12px;font-weight:700;padding:6px 12px;border-radius:6px;display:inline-block;}

.atlas-grid{display:flex;flex-direction:column;gap:6px;margin:22px 0;}

.atlas-tactic{background:#0f172a;border-radius:8px;padding:12px 16px;display:flex;align-items:flex-start;gap:12px;}

.at-code{font-family:var(--mono);font-size:10px;font-weight:700;color:#475569;width:54px;flex-shrink:0;padding-top:2px;}

.at-body{flex:1;}

.at-name{font-size:12px;font-weight: 500;color:#e2e8f0;margin-bottom:3px;}

.at-desc{font-size:11px;color:rgba(255,255,255,.3);line-height:1.5;}

.at-tag{font-size:9px;font-weight:700;padding:2px 6px;border-radius:3px;white-space:nowrap;flex-shrink:0;align-self:flex-start;}

.tag-ml{background:rgba(139,92,246,.2);color:#a78bfa;}

.tag-infra{background:rgba(37,99,235,.15);color:#93c5fd;}

.tag-data{background:rgba(5,150,105,.15);color:#6ee7b7;}

.tag-ai{background:rgba(220,38,38,.15);color:#fca5a5;}

.actor-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:22px 0;}

.actor-card{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:16px 18px;}

.actor-icon{font-size:22px;margin-bottom:8px;}

.actor-type{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);margin-bottom:4px;}

.actor-name{font-size:14px;font-weight: 500;color:var(--text);margin-bottom:6px;letter-spacing:-.02em;}

.actor-desc{font-size:12.5px;color:var(--text2);line-height:1.6;margin-bottom:8px;}

.actor-targets{display:flex;flex-wrap:wrap;gap:4px;}

.actor-target{font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px;background:var(--white);border:1px solid var(--border);color:var(--text2);}

.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:22px 0;}

.stat-box{background:#0f172a;border:1px solid rgba(255,255,255,.07);border-radius:10px;padding:16px;text-align:center;}

.stat-val{font-size:22px;font-weight:900;color:#e2e8f0;letter-spacing:-.03em;margin-bottom:4px;}

.stat-label{font-size:10px;font-weight:600;color:rgba(255,255,255,.28);line-height:1.4;}

.economics-compare{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0;}

@media(max-width:768px){.page-body{grid-template-columns:1fr;padding:24px 20px 60px;}.sidebar{position:static;}.hero-row{grid-template-columns:1fr;}.mod-hero{padding:36px 20px 32px;}.card{padding:24px 20px;}.attack-cats{grid-template-columns:1fr;}.actor-grid,.related-grid,.stats-row,.economics-compare,.distinction{grid-template-columns:1fr;}}

#toc li a{display:flex;align-items:center;gap:8px;padding:7px 18px;font-size:12px;color:var(--text2);text-decoration:none;font-weight:500;transition:color .15s,background .15s;border-left:2px solid transparent;}

.dist-col{padding: 16px;}

.dist-label{font-size:10px;font-weight: 500;letter-spacing:.09em;text-transform:uppercase;margin-bottom:6px;}

.dist-title{font-size:14px;font-weight:900;color:var(--text);margin-bottom:6px;letter-spacing:-.02em;}

.dist-desc{font-size:12.5px;color:var(--text2);line-height:1.6;}

.risk-overview{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:22px 0;}

.risk-pill{border-radius:8px;padding:10px 12px;border:1px solid var(--border);cursor:pointer;transition:transform .15s,box-shadow .15s;text-decoration:none;display:block;}

.risk-pill:hover{transform:translateY(-2px);box-shadow:var(--shadow);}

.rp-code{font-size:10px;font-weight: 500;font-family:var(--mono);margin-bottom:4px;}

.rp-name{font-size:11px;font-weight:700;color:var(--text);line-height:1.35;}

.rp-sev{font-size:9px;font-weight:700;padding:2px 6px;border-radius:3px;margin-top:5px;display:inline-block;}

.risk-card{border-radius:var(--rlg);overflow:hidden;border:1px solid var(--border);box-shadow:var(--shadow);}

.risk-head{padding:18px 24px;display:flex;align-items:flex-start;gap:14px;}

.risk-code-badge{font-family:var(--mono);font-size:11px;font-weight: 500;padding:4px 10px;border-radius:6px;flex-shrink:0;margin-top:2px;}

.risk-head-body{flex:1;}

.risk-title{font-size:17px;font-weight:900;color:var(--text);letter-spacing:-.03em;margin-bottom:4px;}

.risk-sub{font-size:12px;}

.risk-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;}

.risk-tag{font-size:10px;font-weight:600;padding:2px 8px;border-radius:4px;background:var(--bg2);border:1px solid var(--border);color:var(--text2);}

.risk-tag.new-2025{background:#fffbeb;border-color:#fde68a;color:#92400e;font-weight:700;}

.risk-tag.critical{background:var(--red-light);border-color:#fca5a5;color:var(--red);}

.risk-tag.high{background:var(--amber-light);border-color:#fde68a;color:var(--amber);}

.risk-tag.medium{background:var(--blue-light);border-color:#bfdbfe;color:var(--blue);}

.risk-body{padding:16px 20px;background:var(--white);}

.risk-body .prose{margin-bottom:14px;}

.risk-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px;}

.risk-col-head{font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;margin-bottom:7px;}

.risk-col-item{font-size:12px;color:var(--text2);padding:4px 0;display:flex;gap:7px;line-height:1.5;border-bottom:1px solid var(--border);}

.risk-col-item:last-child{border-bottom:none;}

.risk-col-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;margin-top:6px;}

.mirror-badge{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:700;padding:3px 9px;border-radius:5px;margin-top:10px;text-decoration:none;transition:opacity .15s;}

.mirror-badge:hover{opacity:.85;}

.mb-vx{background:#ede9fe;color:#5b21b6;}

.mb-ag{background:#ecfdf5;color:#065f46;}

.mb-dc{background:var(--red-light);color:var(--red);}

.changes-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:22px 0;}

.change-card{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:14px 16px;}

.cc-label{font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;margin-bottom:5px;}

.cc-label.added{color:var(--green);}

.cc-label.moved{color:var(--amber);}

.cc-label.renamed{color:var(--blue);}

.cc-label.expanded{color:var(--accent);}

.cc-title{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:5px;letter-spacing:-.01em;}

.cc-desc{font-size:12px;color:var(--text2);line-height:1.6;}

.priority-matrix{background:#0f172a;border-radius:12px;padding:22px;margin:22px 0;}

.pm-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:14px;}

.pm-rows{display:flex;flex-direction:column;gap:6px;}

.pm-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:7px;border:1px solid rgba(255,255,255,.06);}

.pm-rank{font-family:var(--mono);font-size:11px;font-weight: 500;color:#475569;width:28px;flex-shrink:0;}

.pm-code{font-family:var(--mono);font-size:10px;font-weight:700;width:60px;flex-shrink:0;}

.pm-name{font-size:12px;font-weight:700;color:#e2e8f0;flex:1;}

.pm-bar{height:6px;border-radius:3px;flex-shrink:0;}

@media(max-width:768px){.page-body{grid-template-columns:1fr;padding:24px 20px 60px;}.sidebar{position:static;}.hero-row{grid-template-columns:1fr;}.mod-hero{padding:36px 20px 32px;}.card{padding:24px 20px;}.risk-overview{grid-template-columns:repeat(2,1fr);}.risk-cols,.changes-grid,.related-grid,.distinction{grid-template-columns:1fr;}}

.stride-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0;}

.stride-card{border-radius:10px;overflow:hidden;border:1px solid var(--border);}

.stride-head{padding:11px 14px;display:flex;align-items:center;gap:8px;}

.stride-letter{font-family:var(--mono);font-size:16px;font-weight: 500;width:28px;flex-shrink:0;}

.stride-name{font-size:12px;font-weight: 500;color:var(--text);}

.stride-body{padding:10px 14px;}

.stride-traditional{font-size:11.5px;margin-bottom:6px;font-style:italic;}

.stride-ai{font-size:12px;color:var(--text2);line-height:1.6;}

.stride-ex{font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;background:var(--bg2);border:1px solid var(--border);margin-top:6px;display:block;}

.dfd{background:#0f172a;border-radius:12px;padding:24px;margin:22px 0;}

.dfd-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#64748b;margin-bottom:18px;}

.dfd-layers{display:flex;flex-direction:column;gap:8px;}

.dfd-layer{display:flex;align-items:stretch;gap:0;border-radius:8px;overflow:hidden;}

.dfd-zone{flex:1;padding:12px 14px;border-right:1px solid rgba(255,255,255,.06);}

.dfd-zone:last-child{border-right:none;}

.dfd-zone-label{font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:5px;}

.dfd-zone-name{font-size:12px;font-weight:700;color:#e2e8f0;margin-bottom:3px;}

.dfd-zone-detail{font-size:10px;color:rgba(255,255,255,.7);line-height:1.45;}

.dfd-boundary{font-size:9px;font-weight:700;color:#475569;text-align:center;padding:4px 0;letter-spacing:.08em;text-transform:uppercase;}

.trust-untrusted{background:rgba(220,38,38,.05);}

.trust-partial{background:rgba(217,119,6,.05);}

.trust-trusted{background:rgba(5,150,105,.05);}

.trust-label-untrusted .dfd-zone-label{color:#fca5a5;}

.trust-label-partial .dfd-zone-label{color:#fde68a;}

.trust-label-trusted .dfd-zone-label{color:#6ee7b7;}

/* Threat register table (Orientation/ai-threat-modeling) — scoped so .threat-rows .threat-row cards stay on earlier rules */
.threat-register {
  width: 100%;
  min-width: min(100%, 520px);
  border-collapse: separate;
  border-spacing: 0 8px;
  margin: 22px 0;
}

.threat-register-wrap .threat-register,
.table-overflow-wrap .threat-register {
  margin: 0;
}

.threat-register-wrap {
  margin: 22px 0;
}

.threat-register thead tr.threat-head-row th {
  background: #0f172a;
  border: none;
  padding: 13px 16px;
  vertical-align: bottom;
  font-weight: inherit;
  text-align: left;
}

.threat-register thead tr.threat-head-row th:first-child {
  border-radius: 10px 0 0 10px;
}

.threat-register thead tr.threat-head-row th:last-child {
  border-radius: 0 10px 10px 0;
}

.threat-register tbody tr.threat-row td {
  background: var(--bg2);
  padding: 13px 16px;
  vertical-align: top;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.threat-register tbody tr.threat-row td:not(:first-child) {
  border-left: 1px solid var(--border);
}

.threat-register tbody tr.threat-row td:first-child {
  border-left: 1px solid var(--border);
  border-radius: 10px 0 0 10px;
}

.threat-register tbody tr.threat-row td:last-child {
  border-right: 1px solid var(--border);
  border-radius: 0 10px 10px 0;
}

/* Vector DB attack surface: two-column threat cards as table (A/vector-db-attack-surface) */
.vector-threat-table-wrap {
  margin: 24px 0;
}

.vector-threat-table-wrap .vector-threat-table {
  margin: 0;
}

.vector-threat-table {
  width: 100%;
  min-width: min(100%, 320px);
  border-collapse: separate;
  border-spacing: 0 14px;
}

.vector-threat-table thead th {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--text3);
  text-align: left;
  padding: 0 0 6px 0;
  vertical-align: bottom;
}

.vector-threat-table thead .vector-threat-th-icon {
  width: 56px;
  padding-right: 8px;
}

.vector-threat-table tbody tr td {
  background: var(--white);
  vertical-align: top;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.vector-threat-table tbody tr td.vector-threat-td-icon {
  border-left: 1px solid var(--border);
  border-radius: 12px 0 0 12px;
  padding: 20px 12px 20px 22px;
  width: 56px;
}

.vector-threat-table tbody tr td.vector-threat-td-body {
  border-right: 1px solid var(--border);
  border-radius: 0 12px 12px 0;
  padding: 20px 22px 20px 12px;
}

.vector-threat-table .threat-content {
  flex: none;
}

.th-label{font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:rgba(255,255,255,.35);}

.tr-category{font-size:11px;font-weight:700;color:var(--accent);}

.tr-threat{font-size:12.5px;color:var(--text);font-weight:600;margin-bottom:2px;}

.tr-detail{font-size:11.5px;color:var(--text2);line-height:1.5;}

.tr-score{text-align:center;}

.tr-num{font-size:16px;font-weight:900;color:var(--text);}

.tr-num-label{font-size:9px;color:var(--text3);}

.tr-priority{padding:3px 8px;border-radius:4px;font-size:10px;font-weight:700;text-align:center;}

.pri-critical{background:var(--red-light);color:var(--red);}

.pri-high{background:var(--amber-light);color:var(--amber);}

.pri-medium{background:var(--blue-light);color:var(--blue);}

.process-steps{display:flex;flex-direction:column;gap:0;margin:22px 0;}

.ps-step{display:flex;gap:0;position:relative;}

.ps-step::before{content:"";position:absolute;left:19px;top:36px;bottom:-1px;width:2px;background:var(--border);z-index:0;}

.ps-step:last-child::before{display:none;}

.ps-left{flex-shrink:0;width:40px;display:flex;flex-direction:column;align-items:center;padding-top:12px;z-index:1;}

.ps-num{width:16px;height:16px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight: 500;flex-shrink:0;}

.ps-right{flex:1;padding:10px 0 22px 16px;}

.ps-title{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:5px;letter-spacing:-.01em;}

.ps-desc{font-size:12.5px;color:var(--text2);line-height:1.65;}

.ps-output{font-size:11px;font-weight:700;padding:3px 8px;border-radius:4px;background:var(--accent-light);color:var(--accent);margin-top:6px;display:inline-block;}

.atlas-map{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:22px 0;}

.am-card{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:14px 16px;}

.am-tactic{font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--accent);margin-bottom:4px;font-family:var(--mono);}

.am-name{font-size:13px;font-weight: 500;color:var(--text);margin-bottom:5px;letter-spacing:-.01em;}

.am-applies{font-size:12px;color:var(--text2);line-height:1.6;}

.am-component{font-size:10px;font-weight:700;padding:2px 7px;border-radius:4px;background:var(--white);border:1px solid var(--border);color:var(--text2);margin-top:6px;display:inline-block;}

.related-card.path-c:hover{border-color:var(--teal);background:var(--teal-light);}

.related-card.path-d:hover{border-color:var(--red);background:var(--red-light);}

@media(max-width:768px){.page-body{grid-template-columns:1fr;padding:24px 20px 60px;}.sidebar{position:static;}.hero-row{grid-template-columns:1fr;}.mod-hero{padding:36px 20px 32px;}.card{padding:24px 20px;}.stride-grid{grid-template-columns:1fr;}.atlas-map,.related-grid{grid-template-columns:1fr;}.dfd-layer{flex-direction:column;}}

.framework-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0;}

.fw-card{border-radius:10px;overflow:hidden;border:1px solid var(--border);}

.fw-head{padding:14px 16px;display:flex;align-items:center;gap:10px;}

.fw-badge{font-size:10px;font-weight: 500;padding:4px 9px;border-radius:5px;white-space:nowrap;flex-shrink:0;}

.fw-name{font-size:13px;font-weight: 500;color:var(--text);}

.fw-type{font-size:10px;color:var(--text2);margin-top:1px;}

.fw-body{padding:12px 16px;background:var(--bg2);border-top:1px solid var(--border);}

.fw-desc{font-size:12.5px;color:var(--text2);line-height:1.6;margin-bottom:8px;}

.fw-applies{font-size:11px;font-weight:700;color:var(--text3);}

.tier-row{border-radius:10px;overflow:hidden;border:1px solid var(--border);}

.tier-head{padding:11px 16px;display:flex;align-items:center;gap:10px;}

.tier-level{font-size:11px;font-weight: 500;padding:3px 9px;border-radius:4px;flex-shrink:0;white-space:nowrap;}

.tier-name{font-size:13px;font-weight: 500;color:var(--text);}

.tier-body{padding:11px 16px;background:var(--bg2);border-top:1px solid var(--border);}

.tier-desc{font-size:12.5px;color:var(--text2);line-height:1.6;margin-bottom:6px;}

.tier-examples{display:flex;flex-wrap:wrap;gap:4px;}

.tier-ex{font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px;background:var(--white);border:1px solid var(--border);color:var(--text2);}

.nist-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:22px 0;}

.nist-card{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:16px 18px;}

.nist-fn{font-size:10px;font-weight: 500;letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;}

.nist-name{font-size:14px;font-weight:900;color:var(--text);margin-bottom:7px;letter-spacing:-.02em;}

.nist-desc{font-size:12.5px;color:var(--text2);line-height:1.65;margin-bottom:8px;}

.nist-practical{font-size:11.5px;font-weight:700;color:var(--text);padding:6px 10px;background:var(--white);border:1px solid var(--border);border-radius:6px;}

.evidence-map{overflow-x:auto;margin:22px 0;}

.evidence-map table{width:100%;border-collapse:separate;border-spacing:0;border-radius:10px;overflow:hidden;border:1px solid var(--border);font-size:12px;}

.evidence-map thead{background:#0f172a;}

.evidence-map th{padding:10px 12px;text-align:left;font-size:10px;font-weight:700;color:rgba(255,255,255,.4);text-transform:uppercase;letter-spacing:.07em;}

.evidence-map td{padding:10px 12px;border-top:1px solid var(--border);vertical-align:top;color:var(--text2);line-height:1.5;}

.evidence-map td:first-child{font-weight:700;color:var(--text);font-size:11.5px;}

.em-badge{font-size:10px;font-weight:700;padding:2px 6px;border-radius:3px;display:inline-block;white-space:nowrap;}

.em-vx{background:var(--accent-light);color:var(--accent);}

.em-ag{background:var(--green-light);color:var(--green);}

.em-dc{background:var(--red-light);color:var(--red);}

.em-tm{background:var(--amber-light);color:var(--amber);}

.track-complete{display:flex;flex-direction:column;gap:8px;margin:22px 0;}

.tc-mod{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight: 500;flex-shrink:0;background:var(--green);color:#fff;}

.tc-tag{font-size:10px;font-weight:700;padding:2px 7px;border-radius:4px;white-space:nowrap;flex-shrink:0;background:var(--green-light);color:var(--green);}

@media(max-width:768px){.page-body{grid-template-columns:1fr;padding:24px 20px 60px;}.sidebar{position:static;}.hero-row{grid-template-columns:1fr;}.mod-hero{padding:36px 20px 32px;}.card{padding:24px 20px;}.framework-grid,.nist-grid,.related-grid{grid-template-columns:1fr;}.evidence-map table{font-size:11px;}}

:root {
  --white: #ffffff;
  --bg: #f7f9fc;
  --bg2: #eef2f8;
  --border: #e3e8f0;
  --border-dark: #cdd4e0;
  --text: #0a0f1e;
  --text2: #445168;
  --text3: #8494ae;
  --accent: #7c3aed;
  --accent-hover: #6d28d9;
  --accent-light: #ede9fe;
  --green: #00875a;
  --green-light: #e3f5ef;
  --amber: #92400e;
  --amber-light: #fef3c7;
  --red: #991b1b;
  --red-light: #fee2e2;
  --font: "Montserrat", sans-serif;
  --radius: 10px;
  --radius-lg: 14px;
  --shadow: 0 4px 16px rgba(10,15,30,0.06), 0 1px 4px rgba(10,15,30,0.04);
}

body { background: var(--bg); color: var(--text); font-family: var(--font); font-size: 15px; line-height: 1.6; -webkit-font-smoothing: antialiased; }

nav {
  background: rgba(255,255,255,0.96);
  backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: space-start;
  height: 60px;
  position: sticky;
  top: 0;
  z-index: 200;
}

.nav-logo { display: flex; align-items: center; gap: 9px; text-decoration: none; }

.logo-text { font-size: 15px; font-weight: 800; color: var(--text); letter-spacing: -0.04em; }

.logo-text .sep { color: var(--text3); font-weight: 300; margin: 0 2px; }

.nav-right { display: flex; align-items: center; gap: 10px; }

.nav-link { font-size: 13px; font-weight: 500; color: var(--text2); text-decoration: none; padding: 6px 12px; border-radius: 6px; transition: all 0.15s; }

.nav-link:hover, .nav-link.active { color: var(--accent); background: var(--accent-light); }

.nav-breadcrumb { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--text3); }

.nav-breadcrumb a { color: var(--text3); text-decoration: none; transition: color 0.15s; }

.nav-breadcrumb a:hover { color: var(--accent); }

.nav-breadcrumb span { color: var(--border-dark); }

.btn-nav-primary { font-family: var(--font); font-size: 12px; font-weight: 700; color: #fff; background: var(--accent); padding: 7px 16px; border-radius: 6px; text-decoration: none; transition: background 0.15s; }

.btn-nav-primary:hover { background: var(--accent-hover); }

.gloss-hero {
  background: var(--white);
  border-bottom: 1px solid var(--border);
  padding: 48px 40px 44px;
  position: relative;
  overflow: hidden;
}

.gloss-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle at 1px 1px, #dde3f0 1px, transparent 0);
  background-size: 24px 24px;
  opacity: 0.4;
  pointer-events: none;
}

.gloss-hero::after {
  content: "";
  position: absolute;
  top: -80px; right: -80px;
  width: 400px; height: 400px;
  background: radial-gradient(ellipse, rgba(124,58,237,0.06) 0%, transparent 65%);
  pointer-events: none;
}

.hero-inner { position: relative; max-width: 1100px; margin: 0 auto; }

.path-badge { display: inline-flex; align-items: center; gap: 7px; background: var(--accent-light); color: var(--accent); font-size: 10px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; padding: 4px 10px; border-radius: 4px; margin-bottom: 14px; }

.path-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent); margin-bottom: 10px; }

.path-title { font-size: clamp(28px, 3.5vw, 42px); font-weight: 500; letter-spacing: -0.04em; color: var(--text); line-height: 1.1; margin-bottom: 14px; }

.path-sub { font-size: 15px; color: var(--text2); line-height: 1.68; font-weight: 400; max-width: 560px; margin-bottom: 24px; }

.hero-meta { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }

.meta-item { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; color: var(--text2); }

.meta-dot { width: 4px; height: 4px; background: var(--border-dark); border-radius: 50%; }

.page-body { max-width: 1100px; margin: 0 auto; padding: 36px 0px 80px; display: grid; grid-template-columns: 220px 1fr; gap: 32px; align-items: start; }

.sidebar { position: sticky; top: 76px; }

.toc-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; margin-bottom: 16px; overflow-y: auto;}

.toc-header { padding: 14px 20px; border-bottom: 1px solid var(--border); font-size: 10px; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase; color: var(--text3); }

.toc-list { list-style: none; padding: 8px 0; }

.toc-list li a { display: block; padding: 6px 20px; font-size: 12px; color: var(--text2); text-decoration: none; font-weight: 500; transition: color 0.15s, background 0.15s; }

.toc-list li a:hover { color: var(--accent); background: var(--accent-light); }

.toc-list li a.toc-active { color: var(--accent); background: var(--accent-light); }

.sidebar-stat { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 20px; }

.sidebar-stat-row { display: flex; justify-content: space-between; align-items: baseline; padding: 8px 0; border-bottom: 1px solid var(--border); }

.sidebar-stat-row:last-child { border-bottom: none; }

.stat-label { font-size: 11px; font-weight: 600; color: var(--text3); }

.stat-val { font-size: 13px; font-weight: 700; color: var(--text); }

.content { min-width: 0; }

.alpha-bar {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 14px 20px;
  margin-bottom: 24px;
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  align-items: center;
}

.alpha-bar-label { font-size: 10px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text3); margin-right: 8px; flex-shrink: 0; }

.alpha-link {
  font-size: 12px; font-weight: 700; color: var(--text3);
  width: 26px; height: 26px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 5px;
  text-decoration: none;
  transition: all 0.15s;
}

.alpha-link:hover, .alpha-link.has-terms { color: var(--accent); background: var(--accent-light); }

.alpha-link.no-terms { opacity: 0.3; pointer-events: none; cursor: default; }

.term-group { margin-bottom: 32px; }

.term-group-header {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 16px;
}

.term-group-letter {
  width: 40px; height: 40px;
  background: var(--accent);
  color: #fff;
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  font-size: 18px; font-weight: 500;
  flex-shrink: 0;
  letter-spacing: -0.02em;
}

.term-group-count { font-size: 11px; font-weight: 600; color: var(--text3); }

.terms-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

.term-card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 18px 18px;
  transition: border-color 0.2s, box-shadow 0.15s;
}

.term-card:hover { border-color: var(--accent); box-shadow: var(--shadow); }

.term-badge { display: inline-flex; align-items: center; font-size: 9px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; padding: 2px 6px; border-radius: 3px; margin-bottom: 6px; }

.tb-concept { background: var(--accent-light); color: var(--accent); }

.tb-attack  { background: var(--red-light); color: var(--red); }

.tb-defense { background: var(--green-light); color: var(--green); }

.tb-infra   { background: var(--amber-light); color: var(--amber); }

.tb-eval    { background: var(--bg2); color: var(--text2); border: 1px solid var(--border-dark); }

.term-name { font-size: 13px; font-weight: 700; color: var(--text); margin-bottom: 6px; letter-spacing: -0.01em; }

.term-def  { font-size: 12px; color: var(--text2); line-height: 1.62; font-weight: 400; }

.term-security-note { display: flex; align-items: flex-start; gap: 6px; margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--border); font-size: 11px; color: var(--accent); font-weight: 600; line-height: 1.5; }

.term-security-note svg { flex-shrink: 0; margin-top: 1px; }

.cat-divider { margin: 36px 0 20px; padding-bottom: 10px; border-bottom: 2px solid var(--border); }

.cat-eyebrow { font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--accent); margin-bottom: 4px; }

.cat-title { font-size: 18px; font-weight: 800; color: var(--text); letter-spacing: -0.03em; }

footer { background: var(--white); border-top: 1px solid var(--border); padding: 32px 40px; }

.footer-inner { max-width: 1100px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }

.footer-copy { font-size: 12px; color: var(--text3); }

.footer-links { display: flex; gap: 16px; }

.footer-links a { font-size: 12px; color: var(--text3); text-decoration: none; transition: color 0.15s; }

.footer-links a:hover { color: var(--accent); }

@keyframes fadeUp { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }

.hero-inner { animation: fadeUp 0.5s ease forwards; }

@media (max-width: 960px) {
  .page-body { grid-template-columns: 1fr; padding: 24px; }
  .sidebar { position: static; }
  nav { padding: 0 20px; }
  .gloss-hero { padding: 36px 24px 32px; }
  .terms-grid { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .nav-breadcrumb { display: none; }
}

:root{
  --accent:#7c3aed;--accent-hover:#6d28d9;--accent-light:#f5f3ff;--accent-mid:#ede9fe;
  --text:#0f172a;--text2:#475569;--text3:#94a3b8;
  --bg:#f8fafc;--bg2:#f1f5f9;--white:#ffffff;--border:#e2e8f0;
  --green:#059669;--green-light:#ecfdf5;
  --amber:#d97706;--amber-light:#fffbeb;
  --blue:#3b82f6;--blue-light:#eff6ff;
  --teal:#0d9488;--teal-light:#f0fdfa;
  --health:#0891b2;--health-light:#ecfeff;
  --red:#dc2626;--red-light:#fef2f2;
  --font:"Montserrat",sans-serif;
  --shadow:0 1px 3px rgba(15,23,42,.06),0 4px 16px rgba(15,23,42,.04);
  --shadow-lg:0 8px 40px rgba(15,23,42,.12);
  
  --t1:#7c3aed;--t1-bg:#f5f3ff;
  --t2:#3b82f6;--t2-bg:#eff6ff;
  --t3:#0d9488;--t3-bg:#f0fdfa;
  --t4:#7c3aed;--t4-bg:#1e1b4b;
}

body{font-family:var(--font);background:var(--white);color:var(--text);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;}

.nav{position:sticky;top:0;z-index:200;background:rgba(255,255,255,.97);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);height:60px;display:flex;align-items:center;padding:0 40px;gap:32px;}

.nav-logo{display:flex;align-items:center;gap:9px;text-decoration:none;font-size:15px;font-weight: 500;color:var(--text);letter-spacing:-.03em;flex-shrink:0;}

.nav-logo .slash{color:var(--text3);font-weight:400;}

.nav-logo .sub{color:var(--accent);}

.nav-search{display:flex;align-items:center;gap:8px;background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:6px 12px;min-width:220px;transition:border-color .15s;}

.nav-search:focus-within{border-color:var(--accent);}

.nav-search input{border:none;background:transparent;font-family:var(--font);font-size:13px;color:var(--text);outline:none;flex:1;}

.nav-search input::placeholder{color:var(--text3);}

.nav-links{display:flex;align-items:center;gap:24px;margin-left:auto;}

.nav-links a{font-size:13px;font-weight:500;color:var(--text2);text-decoration:none;transition:color .15s;}

.nav-links a:hover{color:var(--accent);}

.nav-cta{font-family:var(--font);font-size:12px;font-weight:700;background:var(--accent);color:#fff!important;border:none;padding:8px 18px;border-radius:8px;text-decoration:none;transition:background .15s;white-space:nowrap;}

.nav-cta:hover{background:var(--accent-hover);}

.search-clear{background:none;border:none;cursor:pointer;color:var(--text3);padding:2px;display:none;line-height:1;}

.search-clear.visible{display:block;}

.hero{background:linear-gradient(135deg,#1e1b4b 0%,#312e81 40%,#4c1d95 100%);padding:80px 40px 72px;text-align:center;position:relative;overflow:hidden;}

.hero::before{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.025'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");}

.hero-inner{position:relative;}

.hero-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.1);color:rgba(255,255,255,.8);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:6px 16px;border-radius:20px;border:1px solid rgba(255,255,255,.15);margin-bottom:28px;}

.hero h1{font-size:clamp(36px,5vw,60px);font-weight:800;letter-spacing:-.05em;color:#fff;line-height:1.05;max-width:760px;margin:0 auto 20px;}

.hero h1 em{font-style:normal;color:#a78bfa;}

.hero-sub{font-size:17px;color:rgba(255,255,255,.68);line-height:1.7;max-width:560px;margin:0 auto 36px;}

.hero-actions{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;}

.btn-primary{font-family:var(--font);font-size:14px;font-weight:700;background:#fff;color:var(--accent);border:none;padding:13px 28px;border-radius:10px;text-decoration:none;cursor:pointer;transition:opacity .15s;}

.btn-primary:hover{opacity:.92;}

.btn-ghost-hero{font-family:var(--font);font-size:14px;font-weight:600;background:transparent;color:rgba(255,255,255,.75);border:1.5px solid rgba(255,255,255,.3);padding:12px 24px;border-radius:10px;text-decoration:none;transition:border-color .15s,color .15s;}

.btn-ghost-hero:hover{border-color:rgba(255,255,255,.7);color:#fff;}

.hero-stats{display:flex;align-items:center;justify-content:center;gap:28px;margin-top:40px;flex-wrap:wrap;}

.hero-stat{font-size:11px;font-weight:600;color:rgba(255,255,255,.5);}

.hero-stat-dot{width:4px;height:4px;background:rgba(255,255,255,.25);border-radius:50%;}

.progress-bar{background:var(--bg2);border-bottom:1px solid var(--border);padding:14px 40px;}

.progress-inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;gap:24px;flex-wrap:wrap;}

.prog-label{font-size:11px;font-weight:600;color:var(--text3);}

.prog-tracks{display:flex;gap:8px;flex-wrap:wrap;}

.prog-track{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:6px;border:1px solid var(--border);background:var(--white);cursor:pointer;transition:all .15s;font-size:11px;font-weight:700;}

.prog-track:hover{border-color:var(--accent);color:var(--accent);}

.prog-track.t1c{border-color:var(--t1);color:var(--t1);}

.prog-track.t2c{border-color:var(--t2);color:var(--t2);}

.prog-track.t3c{border-color:var(--t3);color:var(--t3);}

.prog-track.t4c{border-color:#a78bfa;color:#6d28d9;}

.prog-dot{width:6px;height:6px;border-radius:50%;}

.prog-track.t1c .prog-dot{background:var(--t1);}

.prog-track.t2c .prog-dot{background:var(--t2);}

.prog-track.t3c .prog-dot{background:var(--t3);}

.prog-track.t4c .prog-dot{background:#7c3aed;}

.prog-right{margin-left:auto;display:flex;align-items:center;gap:10px;}

.filter-pill{font-size:11px;font-weight:600;padding:4px 10px;border-radius:6px;cursor:pointer;border:1px solid var(--border);background:var(--white);color:var(--text2);transition:all .15s;}

.filter-pill.active{background:var(--accent);color:#fff;border-color:var(--accent);}

.search-banner{display:none;background:var(--accent-light);border-bottom:1px solid var(--accent-mid);padding:10px 40px;}

.search-banner.visible{display:block;}

.search-banner-inner{max-width:1100px;margin:0 auto;font-size:13px;color:var(--text2);}

.search-banner-inner strong{color:var(--accent);}

.platform-section{background:linear-gradient(180deg,var(--white) 0%,var(--bg) 100%);border-top:1px solid var(--border);padding:72px 0 72px;}

.platform-inner{max-width:1100px;margin:0 auto;}

.platform-grid{display:grid;gap:16px;margin-top:8px;}

.platform-card{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--border);border-radius:14px;padding:22px 22px 20px;text-decoration:none;transition:box-shadow .2s,border-color .2s,transform .15s;min-height:100%;}

.platform-card:hover{box-shadow:var(--shadow-lg);border-color:var(--accent-mid);transform:translateY(-2px);}

.platform-card-badge{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text3);margin-bottom:10px;}

.platform-card-name{font-size:17px;font-weight:800;color:var(--text);margin-bottom:8px;letter-spacing:-.03em;}

.platform-card-desc{font-size:13px;color:var(--text2);line-height:1.6;margin-bottom:18px;flex:1;}

.platform-card-cta{font-size:12px;font-weight:700;color:var(--accent);display:inline-flex;align-items:center;gap:4px;margin-top:auto;}

.platform-card-vx{border-top:3px solid #7c3aed;}

.platform-card-aiq{border-top:3px solid #db2777;}

.platform-card-dcr{border-top:3px solid #2563eb;}

.curriculum{padding:72px 0px 72px;}

.section-label{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:10px;}

.section-title{font-size:clamp(26px,3vw,36px);font-weight: 500;letter-spacing:-.04em;color:var(--text);line-height:1.15;margin-bottom:14px;}

.section-sub{font-size:15px;color:var(--text2);line-height:1.7;margin-bottom:48px;}

.track-block{margin-bottom:12px;border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:box-shadow .2s;}

.track-block:hover{box-shadow:var(--shadow);}

.track-block.expanded{box-shadow:var(--shadow-lg);}

.track-head{display:flex;align-items:center;gap:16px;padding:20px 24px;cursor:pointer;background:var(--white);user-select:none;transition:background .15s;}

.track-head:hover{background:var(--bg);}

.track-num-badge{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:900;flex-shrink:0;border:2px solid;}

.track-tag-pill{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 10px;border-radius:5px;}

.track-head-text{flex:1;}

.track-head-title{font-size:16px;font-weight: 500;letter-spacing:-.03em;color:var(--text);margin-bottom:2px;}

.track-head-sub{font-size:12px;color:var(--text2);}

.track-head-meta{display:flex;align-items:center;gap:10px;flex-shrink:0;}

.track-mod-count{font-size:11px;font-weight:600;color:var(--text3);}

.track-chevron{transition:transform .25s;color:var(--text3);}

.track-block.expanded .track-chevron{transform:rotate(180deg);}

.track-parallel-badge{font-size:10px;font-weight:600;color:var(--text3);background:var(--bg2);border:1px solid var(--border);border-radius:5px;padding:2px 8px;}

.track-body{display:none;border-top:1px solid var(--border);}

.track-block.expanded .track-body{display:block;}

.path-grid{display:grid;gap:1px;background:var(--border);}

.path-grid.cols-1{grid-template-columns:1fr;}

.path-grid.cols-2{grid-template-columns:1fr 1fr;}

.path-grid.cols-3{grid-template-columns:1fr 1fr 1fr;}

.path-col{background:var(--white);padding:20px 24px;}

.path-col-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}

.path-col-name{font-size:12px;font-weight: 500;color:var(--text);letter-spacing:-.01em;}

.path-col-count{font-size:10px;font-weight:600;color:var(--text3);background:var(--bg2);border:1px solid var(--border);padding:2px 7px;border-radius:4px;}

.path-col-desc{font-size:12px;color:var(--text2);line-height:1.55; margin-bottom: 8px;}

.module-list{display:flex;flex-direction:column;gap:2px;}

.module-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:9px;cursor:pointer;transition:all .15s;border:1px solid transparent;position:relative;}

.module-row:hover{background:var(--bg2);border-color:var(--border);}

.module-row.available:hover{background:var(--accent-light);border-color:var(--accent-mid);}

.module-row.health-path:hover{background:var(--health-light);}

.module-row.selected{background:var(--accent-light);border-color:var(--accent);}

.module-row.selected.health-path{background:var(--health-light);border-color:var(--health);}

.mod-code{font-size:10px;font-weight: 500;color:var(--text3);min-width:26px;flex-shrink:0;font-family:"Montserrat",sans-serif;letter-spacing:.02em;}

.module-row .mod-title{font-size:12.5px;color:var(--text2);flex:1;line-height:1.45; margin-bottom: 0; font-weight: 500;}

.module-row.available .mod-title{color:var(--text);}

.mod-status-badge{font-size:9px;font-weight:700;padding:2px 6px;border-radius:4px;white-space:nowrap;flex-shrink:0;}

.status-done{background:var(--green-light);color:var(--green);}

.status-ready{background:var(--accent-light);color:var(--accent);}

.status-next{background:var(--amber-light);color:var(--amber);}

.status-planned{background:var(--bg2);color:var(--text3);border:1px solid var(--border);}

.status-fix{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa;}

.mod-launch{width:22px;height:22px;border-radius:6px;display:flex;align-items:center;justify-content:center;background:var(--accent);flex-shrink:0;opacity:0;transition:opacity .15s;}

.module-row:hover .mod-launch{opacity:1;}

.module-row.selected .mod-launch{opacity:1;}

.prod-tags-row{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-top:auto;padding-top:10px;border-top:1px solid var(--border);}

.prod-tag{font-size:9px;font-weight:700;padding:2px 7px;border-radius:3px;}

.vx{background:#ede9fe;color:#5b21b6;}

.ag{background:#ecfdf5;color:#065f46;}

.dc{background:#fef2f2;color:#991b1b;}

.prod-ref{font-size:10px;color:var(--text3);}

.drawer-overlay{position:fixed;inset:0;background:rgba(15,23,42,.3);z-index:300;opacity:0;pointer-events:none;transition:opacity .25s;backdrop-filter:blur(3px);}

.drawer-overlay.open{opacity:1;pointer-events:all;}

.drawer{position:fixed;top:0px;right:0;bottom:0;width:min(520px,95vw);background:var(--white);z-index:301;transform:translateX(100%);transition:transform .28s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;box-shadow:-8px 0 40px rgba(15,23,42,.12);}

.drawer.open{transform:translateX(0);}

.drawer-head{padding:20px 24px;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;gap:14px;}

.drawer-badge{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:900;flex-shrink:0;}

.drawer-titles{flex:1;min-width:0;}

.drawer-eyebrow{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);margin-bottom:4px;}

.drawer-title{font-size:18px;font-weight:900;color:var(--text);letter-spacing:-.03em;line-height:1.2;}

.drawer-close{background:var(--bg2);border:none;border-radius:8px;width:32px;height:32px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text3);flex-shrink:0;transition:background .15s;}

.drawer-close:hover{background:var(--border);color:var(--text);}

.drawer-body{flex:1;overflow-y:auto;padding:24px;}

.drawer-body::-webkit-scrollbar{width:4px;}

.drawer-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px;}

.drawer-chips{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:20px;}

.drawer-chip{font-size:11px;font-weight:600;padding:4px 10px;border-radius:6px;background:var(--bg2);color:var(--text2);border:1px solid var(--border);}

.drawer-desc{font-size:14px;color:var(--text2);line-height:1.75;margin-bottom:24px;}

.drawer-sections-label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);margin-bottom:10px;}

.drawer-sections{display:flex;flex-direction:column;gap:4px;margin-bottom:24px;}

.drawer-sec{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--bg2);border-radius:8px;}

.drawer-sec-num{font-size:10px;font-weight:700;color:var(--text3);width:22px;flex-shrink:0;}

.drawer-sec-title{font-size:12.5px;color:var(--text2);}

.drawer-footer{padding:16px 24px;border-top:1px solid var(--border);display:flex;gap:10px;}

.btn-open-mod{font-family:var(--font);font-size:13px;font-weight:700;background:var(--accent);color:#fff;border:none;padding:11px 22px;border-radius:9px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px;transition:background .15s;flex:1;justify-content:center;}

.btn-open-mod:hover{background:var(--accent-hover);}

.btn-open-mod.health{background:var(--health);}

.btn-open-mod.health:hover{opacity:.9;}

.btn-open-mod-ghost{font-family:var(--font);font-size:13px;font-weight:600;background:transparent;color:var(--text2);border:1.5px solid var(--border);padding:11px 18px;border-radius:9px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px;transition:all .15s;}

.btn-open-mod-ghost:hover{border-color:var(--accent);color:var(--accent);}

.drawer-unavail{background:var(--bg2);border-radius:10px;padding:20px;text-align:center;margin-top:8px;}

.drawer-unavail-title{font-size:13px;font-weight:700;color:var(--text);margin-bottom:6px;}

.drawer-unavail-sub{font-size:12px;color:var(--text3);line-height:1.6;}

.audience-section{background:var(--bg);border-top:1px solid var(--border);padding:72px 0;}

.audience-inner{max-width:1100px;margin:0 auto;}

.audience-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:40px;}

.aud-card{background:var(--white);border:1px solid var(--border);border-radius:14px;padding:28px 26px;box-shadow:var(--shadow);}

.aud-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;margin-bottom:14px;}

.aud-role{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);margin-bottom:6px;}

.aud-title{font-size:16px;font-weight: 500;letter-spacing:-.03em;color:var(--text);margin-bottom:8px;}

.aud-desc{font-size:13px;color:var(--text2);line-height:1.65;}

.aud-tracks{display:flex;gap:6px;margin-top:14px;flex-wrap:wrap;}

.aud-track-pill{font-size:10px;font-weight:600;padding:3px 9px;border-radius:4px;background:var(--bg);border:1px solid var(--border);color:var(--text2);}

.aligned-wrap{padding:40px 0;border-top:1px solid var(--border);}

.aligned-inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;gap:40px;flex-wrap:wrap;}

.aligned-label{font-size:12px;font-weight:600;color:var(--text3);white-space:nowrap;}

.aligned-items{display:flex;align-items:center;gap:28px;flex-wrap:wrap;}

.aligned-item{font-size:13px;font-weight:600;color:var(--text2);}

.faq-section{padding:72px 0;border-top:1px solid var(--border);}

.faq-inner{max-width:1100px;margin:0 auto;}

.faq-grid{display:grid;grid-template-columns:1fr;gap:0;margin-top:40px;border:1px solid var(--border);border-radius:14px;overflow:hidden;}

.faq-item{padding:24px 28px;background:var(--white);border-bottom:1px solid var(--border);}

.faq-item:last-child{border-bottom:none;}

.faq-q{font-size:14px;font-weight:700;color:var(--text);letter-spacing:-.02em;}

.faq-a{font-size:13px;color:var(--text2);line-height:1.7;}

/* Index (#faq): accordion — answers hidden until .open */
.faq-section .faq-q {
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 0;
  letter-spacing: -0.02em;
}
.faq-section .faq-q:hover { color: var(--accent); }
.faq-section .faq-chev { flex-shrink: 0; transition: transform 0.2s; margin-top: 2px; }
.faq-section .faq-item.open .faq-chev { transform: rotate(180deg); }
.faq-section .faq-a {
  display: none;
  margin-top: 10px;
  margin-bottom: 0;
}
.faq-section .faq-item.open .faq-a { display: block; }
.faq-section .faq-item.open .faq-q { color: var(--accent); margin-bottom: 0; }

.bottom-cta{background:linear-gradient(135deg,#1e1b4b 0%,#4c1d95 100%);padding:80px 40px;text-align:center;}

.bottom-cta h2{font-size:clamp(28px,3.5vw,42px);font-weight:900;letter-spacing:-.04em;color:#fff;margin-bottom:16px;}

.bottom-cta p{font-size:16px;color:rgba(255,255,255,.65);margin-bottom:36px;}

.bottom-cta-actions{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;}

footer{background:var(--text);padding:48px 40px;}
footer > .foot-inner {align-items:flex-start;}

.foot-inner{max-width:1100px;margin:0 auto;display:flex;justify-content:space-between;gap:32px;flex-wrap:wrap;}

.foot-brand{max-width:240px;}

.foot-brand-name{font-size:15px;font-weight: 500;color:#fff;letter-spacing:-.03em;margin-bottom:8px;}

.foot-brand-desc{font-size:12px;color:rgba(255,255,255,.4);line-height:1.6;margin-bottom:12px;}

.foot-cert{font-size:10px;font-weight:600;color:rgba(255,255,255,.3);letter-spacing:.05em;text-transform:uppercase;}

.foot-col-title{font-size:11px;font-weight:700;color:rgba(255,255,255,.5);letter-spacing:.07em;text-transform:uppercase;margin-bottom:12px;}

.foot-links{list-style:none;display:flex;}
ul.foot-links{display:flex;gap:8px; flex-direction:column;}

.foot-links a{font-size:12px;color:rgba(255,255,255,.45);text-decoration:none;font-weight:500;transition:color .15s;}

.foot-bottom{max-width:1100px;margin:32px auto 0;padding-top:24px;border-top:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;}

.foot-copy{font-size:12px;color:rgba(255,255,255,.25);}

.foot-legal{display:flex;gap:20px;}

.foot-legal a{font-size:12px;color:rgba(255,255,255,.3);text-decoration:none;}

.no-results{text-align:center;padding:48px 20px;display:none;}

.no-results.visible{display:block;}

.no-results-title{font-size:18px;font-weight: 500;color:var(--text);margin-bottom:8px;}

.no-results-sub{font-size:14px;color:var(--text3);}

@media(max-width:900px){
  .path-grid.cols-3{grid-template-columns:1fr 1fr;}
  .audience-grid{grid-template-columns:1fr 1fr;}
}

@media(max-width:680px){
  .nav{padding:0 20px;gap:12px;}
  .nav-search{display:none;}
  .nav-links{gap:14px;}
  .hero{padding:56px 20px 48px;}
  .platform-grid{grid-template-columns:1fr;}
  .path-grid.cols-2,.path-grid.cols-3{grid-template-columns:1fr;}
  .audience-grid{grid-template-columns:1fr;}
  .progress-bar{padding:12px 20px;}
  footer{padding:40px 20px;}
  .foot-inner{flex-direction:column;}
  .bottom-cta{padding:56px 20px;}
}

/* Applied curriculum track modules (F–H): shared layout; reuses :root tokens where values match */
body.module-track-page {
  --navy: #0f172a;
  --hf-text: #1e293b;
  --text-mid: var(--text2);
  --text-light: #64748b;
  --violet-light: #a78bfa;
  --radius: 10px;
  --code-bg: #0f172a;
  font-family: var(--font), system-ui, -apple-system, sans-serif;
  color: var(--hf-text);
  background: var(--white);
  line-height: 1.7;
}

body.module-track-page .logo-text .sep { color: var(--accent); margin: 0 1px; }
body.module-track-page .logo-text .sub { color: var(--accent); }

body.module-track-page .mod-hero {
  background: linear-gradient(135deg, var(--navy) 0%, #1a1040 100%);
  color: #fff;
  padding: 0;
}
body.module-track-page .hero-wrap { max-width: 1100px; margin: 0 auto; padding: 52px 32px 48px; }
body.module-track-page .mod-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 12px;
  color: var(--violet-light);
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  margin-bottom: 20px;
}
body.module-track-page .hero-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 40px;
}
body.module-track-page .mod-eyebrow {
  font-size: 13px;
  color: var(--violet-light);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 10px;
}
body.module-track-page .mod-title {
  font-size: clamp(26px, 4vw, 38px);
  font-weight: 800;
  line-height: 1.15;
  margin-bottom: 14px;
  color: #fff;
}
body.module-track-page .mod-sub { font-size: 16px; color: #94a3b8; line-height: 1.65; max-width: 640px; }
body.module-track-page .hero-meta { display: flex; align-items: center; gap: 8px; margin-top: 20px; flex-wrap: wrap; }
body.module-track-page .hmeta {
  font-size: 13px;
  color: #64748b;
  display: flex;
  align-items: center;
  gap: 5px;
}
body.module-track-page .hmdot { width: 3px; height: 3px; border-radius: 50%; background: #334155; }
body.module-track-page .stepper-label {
  font-size: 11px;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 8px;
}
body.module-track-page .stepper { display: flex; gap: 6px; align-items: center; }
body.module-track-page .step {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.15s;
}
body.module-track-page .step-done { background: var(--accent); color: #fff; }
body.module-track-page .step-active { background: #fff; color: var(--accent); box-shadow: 0 0 0 2px var(--accent); }
body.module-track-page .step-future { background: #1e293b; color: #475569; border: 1px solid #334155; }
body.module-track-page .step-future:hover { border-color: var(--violet-light); color: var(--violet-light); }

body.module-track-page .page-body {
  max-width: 1100px;
  margin: 0 auto;
  padding: 48px 32px;
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 48px;
  align-items: start;
}
body.module-track-page .sidebar { position: sticky; top: 72px; }
body.module-track-page .side-card {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  flex: none;
}
body.module-track-page .side-head { padding: 16px 18px 10px; border-bottom: 1px solid var(--border); }
body.module-track-page .side-label {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-light);
  font-weight: 600;
  margin-bottom: 2px;
}
body.module-track-page .side-title { font-size: 13px; font-weight: 700; color: var(--hf-text); }
body.module-track-page #toc { list-style: none; padding: 10px 0; }
body.module-track-page #toc li a {
  display: flex;
  align-items: baseline;
  gap: 8px;
  padding: 7px 18px;
  font-size: 13px;
  color: var(--text-mid);
  text-decoration: none;
  transition: all 0.15s;
  border-left: 2px solid transparent;
}
body.module-track-page #toc li a:hover,
body.module-track-page #toc li a.active {
  color: var(--accent);
  background: var(--accent-light);
  border-left-color: var(--accent);
}
body.module-track-page .toc-num { font-size: 10px; color: var(--text-light); font-weight: 700; min-width: 18px; }
body.module-track-page .side-track { margin-top: 12px; }
body.module-track-page .side-track-head { padding: 12px 18px 8px; border-top: 1px solid var(--border); }
body.module-track-page .side-track-label {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-light);
}
body.module-track-page .track-nav { list-style: none; padding: 4px 0 10px; }
body.module-track-page .track-nav li a {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 18px;
  font-size: 12px;
  color: var(--text-light);
  text-decoration: none;
}
body.module-track-page .track-nav li a:hover { color: var(--accent); }
body.module-track-page .track-nav li a.current { color: var(--accent); font-weight: 700; }
body.module-track-page .track-nav li a .tn { font-size: 10px; color: var(--text-light); min-width: 20px; }

body.module-track-page .content { min-width: 0; }
body.module-track-page .content section { scroll-margin-top: 80px; }
body.module-track-page .content h2 {
  font-size: 24px;
  font-weight: 800;
  color: var(--navy);
  margin-bottom: 16px;
  line-height: 1.25;
}

body.module-track-page .callout {
  border-radius: var(--radius);
  padding: 18px 22px;
  margin: 24px 0;
  border-left: 3px solid;
}
body.module-track-page .callout-key { background: var(--accent-light); border-left-color: var(--accent); }
body.module-track-page .callout-warn { background: var(--amber-light); border-left-color: var(--amber); }
body.module-track-page .callout-check { background: var(--green-light); border-left-color: var(--green); }
body.module-track-page .callout-risk { background: var(--red-light); border-left-color: var(--red); }
body.module-track-page .callout-title {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  font-weight: 700;
  margin-bottom: 6px;
}
body.module-track-page .callout-key .callout-title { color: var(--accent); }
body.module-track-page .callout-warn .callout-title { color: var(--amber); }
body.module-track-page .callout-check .callout-title { color: var(--green); }
body.module-track-page .callout-risk .callout-title { color: var(--red); }
body.module-track-page .callout p { font-size: 14px; margin: 0; }

body.module-track-page .code-block {
  background: var(--code-bg);
  border-radius: var(--radius);
  overflow: hidden;
  margin: 20px 0;
}
body.module-track-page .code-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 16px;
  background: #1e293b;
  border-bottom: 1px solid #334155;
}
body.module-track-page .code-lang {
  font-size: 11px;
  color: #64748b;
  font-family: "JetBrains Mono", monospace;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
body.module-track-page .code-file { font-size: 11px; color: #475569; font-family: monospace; }
body.module-track-page .code-block pre { padding: 20px; overflow-x: auto; margin: 0; }
body.module-track-page .code-block code {
  font-family: "JetBrains Mono", "Fira Code", monospace;
  font-size: 13px;
  line-height: 1.7;
  color: #e2e8f0;
}
body.module-track-page .kw { color: #c084fc; }
body.module-track-page .fn { color: #60a5fa; }
body.module-track-page .st { color: #4ade80; }
body.module-track-page .cm { color: #475569; }
body.module-track-page .nu { color: #fb923c; }
body.module-track-page .hl { background: rgba(124, 58, 237, 0.15); display: block; margin: 0 -20px; padding: 0 20px; }

body.module-track-page .data-table { width: 100%; border-collapse: collapse; margin: 12px 0; font-size: 14px; }
body.module-track-page .data-table th {
  background: var(--navy);
  color: #fff;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 10px 14px;
  text-align: left;
  font-weight: 600;
}
body.module-track-page .data-table td {
  padding: 10px 14px;
  border-bottom: 1px solid var(--border);
  color: var(--text-mid);
  vertical-align: top;
}
body.module-track-page .data-table tr:last-child td { border-bottom: none; }
body.module-track-page .data-table tr:nth-child(even) td { background: var(--bg); }
body.module-track-page .badge { display: inline-block; font-size: 11px; font-weight: 600; padding: 2px 8px; border-radius: 4px; }
body.module-track-page .badge-red { background: var(--red-light); color: var(--red); }
body.module-track-page .badge-amber { background: var(--amber-light); color: var(--amber); }
body.module-track-page .badge-green { background: var(--green-light); color: var(--green); }
body.module-track-page .badge-violet { background: var(--accent-light); color: var(--accent); }

body.module-track-page .step-list { list-style: none; counter-reset: steps; margin: 20px 0; }
body.module-track-page .step-list li { counter-increment: steps; display: flex; gap: 16px; margin-bottom: 20px; }
body.module-track-page .step-list li::before {
  content: counter(steps);
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--accent);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  flex-shrink: 0;
  margin-top: 2px;
}
body.module-track-page .step-list li > div { flex: 1; }
body.module-track-page .step-title { font-weight: 700; color: var(--navy); margin-bottom: 4px; }
body.module-track-page .step-desc,
body.module-track-page .timeline-desc { font-size: 14px; color: var(--text-mid); }

body.module-track-page .risk-grid,
body.module-track-page .req-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin: 20px 0; }
body.module-track-page .risk-card,
body.module-track-page .req-card {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}
body.module-track-page .risk-card-head { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
body.module-track-page .risk-icon {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  flex-shrink: 0;
}
body.module-track-page .risk-title { font-size: 14px; font-weight: 700; color: var(--navy); }
body.module-track-page .risk-card p { font-size: 13px; margin: 0; }

body.module-track-page .timeline { position: relative; padding-left: 32px; margin: 20px 0; }
body.module-track-page .timeline::before {
  content: "";
  position: absolute;
  left: 8px;
  top: 8px;
  bottom: 8px;
  width: 2px;
  background: var(--border);
}
body.module-track-page .timeline-item { position: relative; margin-bottom: 28px; }
body.module-track-page .timeline-item::before {
  content: "";
  position: absolute;
  left: -28px;
  top: 6px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--accent);
  border: 2px solid var(--white);
}
body.module-track-page .timeline-day {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--accent);
  font-weight: 700;
  margin-bottom: 4px;
}
body.module-track-page .timeline-title { font-size: 15px; font-weight: 700; color: var(--navy); margin-bottom: 6px; }

body.module-track-page .req-card-head { font-size: 13px; font-weight: 700; color: var(--navy); margin-bottom: 8px; }
body.module-track-page .req-card p { font-size: 13px; color: var(--text-mid); margin: 0; line-height: 1.6; }
body.module-track-page .req-ref {
  font-size: 11px;
  color: var(--text-light);
  margin-top: 8px;
  font-family: monospace;
}

body.module-track-page .faq-list { margin: 0; }
body.module-track-page .faq-item { border-bottom: 1px solid var(--border); padding: 20px 0; }
body.module-track-page .faq-item:last-child { border-bottom: none; }
body.module-track-page .faq-q { font-size: 15px; font-weight: 700; color: var(--navy);  }
body.module-track-page .faq-a { font-size: 14px; color: var(--text-mid); line-height: 1.7; }

body.module-track-page .cta-band {
  background: var(--navy);
  border-radius: 12px;
  padding: 40px;
  text-align: center;
}
body.module-track-page .cta-band h3 { color: #fff; font-size: 22px; font-weight: 800; margin-bottom: 10px; }
body.module-track-page .cta-band p { color: #94a3b8; font-size: 15px; margin-bottom: 24px; }
body.module-track-page .cta-row { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; }
body.module-track-page .btn-primary {
  background: var(--accent);
  color: #fff;
  text-decoration: none;
  padding: 12px 24px;
  border-radius: 8px;
  font-weight: 700;
  font-size: 14px;
  transition: background 0.15s;
}
body.module-track-page .btn-primary:hover { background: var(--accent-hover); }
body.module-track-page .btn-outline-white {
  border: 1.5px solid #334155;
  color: #94a3b8;
  text-decoration: none;
  padding: 12px 24px;
  border-radius: 8px;
  font-weight: 600;
  font-size: 14px;
  transition: all 0.15s;
}
body.module-track-page .btn-outline-white:hover { border-color: #94a3b8; color: #fff; }

body.module-track-page .geo-summary {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* G1 finance — Chinese wall diagram */
body.module-track-page .wall-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin: 20px 0;
}
body.module-track-page .wall-card {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 14px;
}
body.module-track-page .wall-name {
  font-size: 12px;
  font-weight: 800;
  color: var(--navy);
  margin-bottom: 6px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
body.module-track-page .wall-role { font-size: 12px; color: var(--text-mid); margin-bottom: 6px; }
body.module-track-page .wall-blocked { font-size: 11px; color: var(--red); font-weight: 600; }

/* G2 finance — red team findings */
body.module-track-page .attack-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  margin: 20px 0;
}
body.module-track-page .attack-card {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 0px;
}
body.module-track-page .attack-name {
  font-size: 13px;
  font-weight: 800;
  color: var(--navy);
  margin-bottom: 4px;
}
body.module-track-page .attack-time {
  font-size: 11px;
  color: var(--text-light);
  margin-bottom: 8px;
  font-family: monospace;
}
body.module-track-page .attack-desc { font-size: 13px; color: var(--text-mid); line-height: 1.6; }
body.module-track-page .attack-priority { font-size: 11px; font-weight: 700; margin-top: 8px; }
body.module-track-page .priority-high { color: var(--red); }
body.module-track-page .priority-med { color: var(--amber); }
body.module-track-page .finding-card {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  margin: 12px 0;
}
body.module-track-page .finding-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  background: var(--bg);
  border-bottom: 1px solid var(--border);
}
body.module-track-page .finding-title { font-size: 14px; font-weight: 700; color: var(--navy); }
body.module-track-page .finding-body { padding: 14px 16px; }
body.module-track-page .finding-body p { font-size: 13px; color: var(--text-mid); margin-bottom: 8px; }
body.module-track-page .finding-body p:last-child { margin: 0; }
body.module-track-page .finding-fix { font-size: 12px; color: var(--green); font-weight: 600; }

/* H1 enterprise agents — Policy DSL + layer stack */
body.module-track-page .dsl-kw { color: #c084fc; }
body.module-track-page .dsl-fn { color: #60a5fa; }
body.module-track-page .dsl-str { color: #4ade80; }
body.module-track-page .dsl-cm { color: #475569; }
body.module-track-page .dsl-op { color: #f472b6; }
body.module-track-page .dsl-num { color: #fb923c; }
body.module-track-page .layer-stack { display: flex; flex-direction: column; gap: 2px; margin: 20px 0; }
body.module-track-page .layer {
  border-radius: 8px;
  padding: 14px 18px;
  display: flex;
  align-items: center;
  gap: 14px;
}
body.module-track-page .layer-num {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 800;
  flex-shrink: 0;
  color: #fff;
}
body.module-track-page .layer-content { flex: 1; }
body.module-track-page .layer-title { font-size: 14px; font-weight: 700; color: var(--navy); }
body.module-track-page .layer-desc { font-size: 13px; color: var(--text-mid); margin-top: 2px; }
body.module-track-page .layer-tag {
  font-size: 11px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 4px;
  flex-shrink: 0;
}

/* H2 sovereign AI — architecture + threat cards */
body.module-track-page .arch-zone {
  border: 1.5px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  margin: 20px 0;
}
body.module-track-page .arch-zone-head {
  padding: 12px 18px;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  display: flex;
  align-items: center;
  gap: 8px;
}
body.module-track-page .arch-zone-body {
  padding: 14px 18px;
  background: var(--bg);
  border-top: 1px solid var(--border);
  font-size: 13px;
  color: var(--text-mid);
}
body.module-track-page .arch-zone-body ul { margin: 8px 0 0 18px; }
body.module-track-page .arch-zone-body li { margin-bottom: 4px; }
body.module-track-page .threat-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  margin: 20px 0;
}
body.module-track-page .threat-card {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}
body.module-track-page .threat-name { font-size: 13px; font-weight: 700; color: var(--navy); margin-bottom: 6px; }
body.module-track-page .threat-desc { font-size: 13px; color: var(--text-mid); line-height: 1.6; margin-bottom: 8px; }
body.module-track-page .threat-mitigation { font-size: 12px; color: var(--green); font-weight: 600; }

@media (max-width: 900px) {
  body.module-track-page .page-body,
  body.module-track-page .hero-row,
  body.module-track-page .risk-grid,
  body.module-track-page .req-grid,
  body.module-track-page .wall-grid,
  body.module-track-page .attack-grid,
  body.module-track-page .threat-grid {
    grid-template-columns: 1fr;
  }
  body.module-track-page .sidebar { position: static; }
}

/* Back to top — module pages using #btt (academy-module.js toggles opacity/transform) */
.back-to-top-wrap {
  position: fixed;
  bottom: 28px;
  right: 28px;
  z-index: 300;
}
.back-to-top-btn {
  width: 44px;
  height: 44px;
  background: var(--accent);
  color: #fff;
  border: none;
  border-radius: 12px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 16px rgba(124, 58, 237, 0.35);
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.25s, transform 0.25s;
}
