
  :root{
    --ink:#1a1a1a; --mid:#555; --soft:#888; --line:#d9d9d9; --bg:#fff; --panel:#f4f4f4; --panel2:#ececec;
    --note-bg:#fff8dc; --note-bd:#e6d060;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  body{font-family:"Helvetica Neue",Arial,sans-serif; color:var(--ink); background:#e8e8e8; line-height:1.55;}
  .frame{max-width:1080px; margin:0 auto; background:var(--bg); min-height:100vh; box-shadow:0 0 30px rgba(0,0,0,.12);}
  .toolbar{position:sticky; top:0; z-index:60; background:#1a1a1a; color:#fff; padding:8px 20px; display:flex; gap:12px; align-items:center; font-size:12px;}
  .toolbar button{margin-left:auto; background:#fff; color:#1a1a1a; border:0; padding:5px 12px; border-radius:3px; font-size:12px; cursor:pointer;}
  nav{display:flex; align-items:center; gap:2px; padding:14px 28px; border-bottom:1px solid var(--line); background:#fff; position:sticky; top:33px; z-index:50; flex-wrap:wrap;}
  .logo{font-weight:800; letter-spacing:.04em; margin-right:16px; cursor:pointer; font-size:15px;}
  .logo span{color:var(--soft); font-weight:400;}
  nav a{color:var(--ink); text-decoration:none; font-size:13px; padding:7px 9px; border-radius:3px; cursor:pointer; white-space:nowrap;}
  nav a:hover{background:var(--panel);}
  nav a.cta{background:var(--ink); color:#fff; margin-left:auto; padding:9px 16px; font-weight:600;}
  .dd{position:relative; display:inline-block;}
  .dd-menu{display:none; position:absolute; top:100%; left:0; background:#fff; border:1px solid var(--line); min-width:210px; box-shadow:0 6px 18px rgba(0,0,0,.1); z-index:55;}
  .dd:hover .dd-menu{display:block;}
  .dd-menu a{display:block; padding:10px 14px; border-bottom:1px solid #eee;}
  .page{display:none;} .page.active{display:block;}
  .sec{padding:44px 48px; border-bottom:1px solid var(--line); position:relative;}
  .sec.tint{background:var(--panel);}
  .sec.dark{background:#2a2a2a; color:#fff;}
  .sec.dark .sub{color:#ccc;}
  .eyebrow{font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--soft); margin-bottom:10px;}
  h1{font-size:34px; line-height:1.15; margin-bottom:14px; font-weight:800;}
  h2{font-size:24px; margin-bottom:12px; font-weight:700;}
  h3{font-size:16px; margin-bottom:8px; font-weight:700;}
  .sub{font-size:16px; color:var(--mid); max-width:680px; margin-bottom:20px;}
  .btn{display:inline-block; background:var(--ink); color:#fff; padding:12px 22px; text-decoration:none; font-size:14px; font-weight:600; border-radius:3px; margin-right:10px; cursor:pointer; border:0;}
  .btn.ghost{background:#fff; color:var(--ink); border:1.5px solid var(--ink);}
  .grid{display:grid; gap:16px;}
  .g2{grid-template-columns:1fr 1fr;} .g3{grid-template-columns:1fr 1fr 1fr;} .g4{grid-template-columns:1fr 1fr 1fr 1fr;}
  .card{border:1px solid var(--line); background:#fff; padding:20px; border-radius:4px;}
  .card p{font-size:13.5px; color:var(--mid);}
  .card .link{display:inline-block; margin-top:10px; font-size:13px; font-weight:700; text-decoration:underline; cursor:pointer;}
  /* persona panels */
  .persona{border:1px solid var(--line); background:#fff; padding:18px; border-radius:5px; cursor:pointer; transition:background .15s;}
  .persona:hover{background:var(--panel);}
  .persona .eyebrow{margin-bottom:6px;}
  .persona h3{font-size:17px;}
  .persona p{font-size:13px; color:var(--mid); margin:6px 0 10px;}
  .persona .go{font-weight:800; font-size:13px; text-decoration:underline;}
  /* hero persona chips */
  .chip-row{display:flex; gap:10px; flex-wrap:wrap; margin-top:22px;}
  .chip{display:flex; align-items:center; gap:8px; border:1.5px solid var(--ink); border-radius:30px; padding:10px 18px; font-size:13.5px; font-weight:700; cursor:pointer; background:#fff; user-select:none;}
  .chip:hover{background:var(--ink); color:#fff;}
  .chip span{font-weight:400; color:var(--soft); font-size:12px;}
  .chip:hover span{color:#ccc;}
  .ph{background:repeating-linear-gradient(45deg,#eee,#eee 10px,#f7f7f7 10px,#f7f7f7 20px); border:1px dashed #bbb; color:#999; display:flex; align-items:center; justify-content:center; font-size:12px; text-align:center; border-radius:3px;}
  .logo-strip{display:flex; gap:12px; flex-wrap:wrap;}
  .logo-strip .ph{width:110px; height:44px;}
  .quote{border-left:3px solid var(--ink); padding:6px 0 6px 16px; font-size:14px; color:var(--mid); font-style:italic;}
  .quote b{display:block; font-style:normal; color:var(--ink); margin-top:6px; font-size:12.5px;}
  table{border-collapse:collapse; width:100%; font-size:13.5px; background:#fff;}
  th,td{border:1px solid var(--line); padding:10px 12px; text-align:left; vertical-align:top;}
  th{background:var(--panel2); font-size:12.5px;}
  .steps{display:flex; gap:8px; flex-wrap:wrap;}
  .steps div{background:#fff; border:1px solid var(--line); padding:10px 14px; font-size:12.5px; border-radius:3px; flex:1; min-width:130px;}
  .steps div b{display:block; font-size:15px; color:var(--soft);}
  .checklist{columns:2; gap:28px; max-width:820px;}
  .checklist li{list-style:none; font-size:14.5px; padding:7px 0 7px 26px; position:relative; break-inside:avoid;}
  .checklist li:before{content:"☐"; position:absolute; left:0; color:var(--soft);}
  footer .sec{border-bottom:0;}
  .foot-grid{display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:24px; font-size:12.5px; color:#bbb;}
  .foot-grid h4{color:#fff; font-size:12px; margin-bottom:8px; letter-spacing:.06em;}
  .foot-grid a{display:block; color:#bbb; text-decoration:none; padding:2px 0; cursor:pointer;}
  .tagline{font-size:18px; color:#fff; font-weight:700; margin-bottom:8px;}
  .note{position:absolute; top:10px; right:14px; background:var(--note-bg); border:1px solid var(--note-bd); font-size:11.5px; color:#6b5900; padding:6px 10px; max-width:290px; border-radius:3px; line-height:1.4; z-index:5;}
  .note b{display:block;}
  body.hide-notes .note{display:none;}
  .faq details{border:1px solid var(--line); background:#fff; margin-bottom:8px; border-radius:3px;}
  .faq summary{padding:12px 16px; font-size:14px; font-weight:600; cursor:pointer;}
  .faq details p{padding:0 16px 12px; font-size:13.5px; color:var(--mid);}
  .crumb{font-size:12px; color:var(--soft); margin-bottom:14px;}
  .pill{display:inline-block; border:1px solid var(--line); border-radius:20px; padding:4px 12px; font-size:12px; margin:0 6px 6px 0; background:#fff; cursor:pointer;}

  /* ---------- interactive tool ---------- */
  .tool{border:2px solid var(--ink); border-radius:6px; background:#fff; overflow:hidden;}
  .tool-head{background:var(--ink); color:#fff; padding:18px 24px;}
  .tool-head h3{font-size:18px; color:#fff; margin-bottom:2px;}
  .tool-head p{font-size:12.5px; color:#bbb;}
  .tool-body{padding:24px;}
  .tool .stepnum{font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--soft); margin:18px 0 8px;}
  .tool .stepnum:first-child{margin-top:0;}
  .opt-row{display:flex; gap:8px; flex-wrap:wrap;}
  .opt{border:1.5px solid var(--line); border-radius:4px; padding:9px 16px; font-size:13.5px; cursor:pointer; background:#fff; user-select:none;}
  .opt:hover{border-color:var(--soft);}
  .opt.sel{border-color:var(--ink); background:var(--ink); color:#fff; font-weight:600;}
  .chk{display:flex; align-items:flex-start; gap:10px; border:1px solid var(--line); border-radius:4px; padding:10px 14px; font-size:13.5px; cursor:pointer; background:#fff; user-select:none;}
  .chk:hover{border-color:var(--soft);}
  .chk input{margin-top:3px;}
  .chk-grid{display:grid; grid-template-columns:1fr 1fr; gap:8px;}
  .tool-cta{margin-top:20px;}
  /* result */
  .result{display:none; border-top:2px solid var(--ink); background:var(--panel); padding:24px;}
  .result.show{display:block;}
  .meter{height:10px; background:#ddd; border-radius:6px; overflow:hidden; max-width:360px; margin:6px 0 4px;}
  .meter div{height:100%; background:#1a1a1a; width:0%; transition:width .5s;}
  .res-card{background:#fff; border:1px solid var(--line); border-radius:4px; padding:16px 18px; margin-top:12px;}
  .res-card h4{font-size:14px; margin-bottom:4px;}
  .res-card p{font-size:13px; color:var(--mid);}
  .res-flag{border-left:3px solid #1a1a1a; padding-left:12px; margin-top:10px;}
  .res-flag b{font-size:13.5px; display:block;}
  .res-flag span{font-size:12.5px; color:var(--mid);}
  @media(max-width:760px){ .g2,.g3,.g4,.chk-grid{grid-template-columns:1fr;} .checklist{columns:1;} .sec{padding:30px 22px;} .foot-grid{grid-template-columns:1fr 1fr;} }

  /* ---------- TVG gauge (Option 2) ---------- */
  .tvg-wrap{display:grid; grid-template-columns:1.2fr 1fr; gap:24px; align-items:start;}
  .tvg-svg-box{background:#fff; border:1px solid var(--line); border-radius:6px; padding:10px;}
  #tvg svg{width:100%; height:auto; display:block;}
  #tvg .zone{cursor:pointer; transition:opacity .2s;}
  #tvg .axis-label{cursor:pointer; font-weight:700; font-size:15px; fill:#1a1a1a;}
  #tvg .axis-sub{font-size:8.5px; letter-spacing:.12em; fill:#c0303a;}
  #tvg .zone-tag{font-size:11px; font-weight:800; letter-spacing:.1em; pointer-events:none;}
  #tvg .ring-label{font-size:8.5px; fill:#999; pointer-events:none;}
  .tvg-panel{border:1px solid var(--line); border-radius:6px; background:#fff; padding:20px; min-height:220px; position:sticky; top:110px;}
  .tvg-panel .zone-chip{display:inline-block; font-size:11px; font-weight:800; letter-spacing:.08em; padding:4px 10px; border-radius:14px; margin-bottom:10px;}
  .tvg-panel h4{font-size:17px; margin-bottom:8px;}
  .tvg-panel p{font-size:13.5px; color:var(--mid);}
  .tvg-panel .hint{font-size:12px; color:var(--soft); font-style:italic;}
  .tvg-legend{display:flex; gap:18px; flex-wrap:wrap; margin-top:12px; font-size:12.5px;}
  .tvg-legend span{display:inline-flex; align-items:center; gap:6px;}
  .tvg-legend i{width:14px; height:14px; border-radius:3px; display:inline-block;}
  @media(max-width:760px){ .tvg-wrap{grid-template-columns:1fr;} .tvg-panel{position:static;} }

  /* ---------- stat band ---------- */
  .statgrid{display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:18px;}
  .stat b{font-family:"Courier New",monospace; font-size:40px; font-weight:800; display:block; letter-spacing:-1px;}
  .stat .bar{width:34px; height:4px; background:#d92632; margin:8px 0 10px;}
  .stat h5{font-size:12px; letter-spacing:.12em; text-transform:uppercase; margin-bottom:6px;}
  .stat p{font-size:12.5px; color:var(--mid);}
  @media(max-width:760px){ .statgrid{grid-template-columns:1fr 1fr;} }

  /* ---------- 12 Technology Assessment Blocks: accordion (identical site-wide) ---------- */
  .tabr{border:1px solid var(--line); border-radius:4px; background:#fff; margin-bottom:6px; overflow:hidden;}
  .tabr-h{display:flex; align-items:baseline; gap:12px; padding:11px 16px; cursor:pointer; user-select:none;}
  .tabr-h:hover{background:var(--panel);}
  .tabr-h .n{font-family:"Courier New",monospace; font-size:10.5px; color:#c0303a; font-weight:700; letter-spacing:.08em;}
  .tabr-h h5{font-size:13.5px; font-weight:700; margin:0; flex:1; line-height:1.25;}
  .tabr-h .sc{font-size:9px; letter-spacing:.09em; color:var(--soft); text-transform:uppercase; font-family:"Courier New",monospace; white-space:nowrap;}
  .tabr-h .pm{font-family:"Courier New",monospace; font-size:15px; color:var(--soft); width:14px; text-align:center;}
  .tabr.open .tabr-h{background:var(--ink);}
  .tabr.open .tabr-h h5{color:#fff;}
  .tabr.open .tabr-h .n{color:#ff8f96;}
  .tabr.open .tabr-h .sc, .tabr.open .tabr-h .pm{color:#aaa;}
  .tabr-b{display:none; padding:16px 18px; border-top:1px solid var(--line); background:#fcfcfc;}
  .tabr.open .tabr-b{display:block;}
  .tabr-cols{display:grid; grid-template-columns:1.15fr 1fr; gap:22px;}
  .tabr-b .lbl{font-family:"Courier New",monospace; font-size:10.5px; letter-spacing:.14em; color:#c0303a; font-weight:700; margin-bottom:7px;}
  .tabr-b .q{font-size:13.5px; margin-bottom:5px; padding-left:14px; position:relative;}
  .tabr-b .q:before{content:"?"; position:absolute; left:0; color:#c0303a; font-weight:700;}
  .tabw-pills{display:flex; flex-wrap:wrap; gap:6px;}
  .tabw-pills span{border:1px solid var(--line); background:#fff; border-radius:14px; padding:3px 11px; font-size:11.5px; color:var(--mid);}
  @media(max-width:760px){ .tabr-cols{grid-template-columns:1fr;} }

  /* ---------- confidentiality wall ---------- */
  .wall-grid{display:grid; grid-template-columns:1fr 1fr 1fr; gap:16px; margin-top:20px;}
  .wall-card{background:#333; border:1px solid #4a4a4a; border-radius:4px; padding:20px;}
  .wall-card h3{color:#fff; font-size:15px; margin-bottom:8px;}
  .wall-card p{font-size:13px; color:#bbb;}
  .wall-base{margin-top:18px; font-family:"Courier New",monospace; font-size:11.5px; letter-spacing:.06em; color:#999;}
  @media(max-width:760px){ .wall-grid{grid-template-columns:1fr;} }
:root{--rag-r:#C42B1C; --rag-a:#E8A33D; --rag-g:#4E9A5E; --brand:#c0303a;}
  /* tool */
  .tool{border:2px solid var(--ink); border-radius:6px; background:#fff; margin-top:8px;}
  .tool-head{background:var(--ink); color:#fff; padding:18px 24px; border-radius:4px 4px 0 0;}
  .tool-head h3{font-size:18px; color:#fff; margin-bottom:2px;}
  .tool-head p{font-size:12.5px; color:#bbb;}
  .prog{height:6px; background:#444; border-radius:4px; margin-top:10px; overflow:hidden;}
  .prog div{height:100%; width:0%; background:#fff; transition:width .3s;}
  .prog-strip{position:sticky; top:97px; z-index:40; border-radius:0 0 4px 4px; background:var(--ink); color:#bbb; font-size:11.5px; padding:6px 24px 8px; display:none; align-items:center; gap:12px;}
  .prog-strip.on{display:flex;}
  .prog-strip .prog{flex:1; margin-top:0; max-width:420px;}
  .tool-body{padding:24px;}
  .stepnum{font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--soft); margin:22px 0 8px;}
  .stepnum:first-child{margin-top:0;}
  .stepnum .tabno{font-family:"Courier New",monospace; color:var(--brand); font-weight:700; margin-right:6px;}
  .opt-row{display:flex; gap:8px; flex-wrap:wrap;}
  .opt{border:1.5px solid var(--line); border-radius:4px; padding:9px 16px; font-size:13.5px; cursor:pointer; background:#fff; user-select:none;}
  .opt:hover{border-color:var(--soft);}
  .opt.sel{border-color:var(--ink); background:var(--ink); color:#fff; font-weight:600;}
  .qblock{scroll-margin-top:150px; border:1px solid var(--line); border-radius:5px; padding:16px 18px; margin-bottom:14px; background:#fff;}
  .qblock h4{font-size:14.5px; margin-bottom:3px;}
  .qblock .qhelp{font-size:12.5px; color:var(--soft); margin-bottom:10px;}
  .ladder .opt{display:block; margin-bottom:6px; border-radius:4px;}
  .chk{display:flex; align-items:flex-start; gap:10px; border:1px solid var(--line); border-radius:4px; padding:9px 13px; font-size:13.5px; cursor:pointer; background:#fff; user-select:none; margin-bottom:6px;}
  .chk:hover{border-color:var(--soft);}
  .chk input{margin-top:3px;}
  .tool-cta{margin-top:22px; scroll-margin-top:150px;}
  .gatebox{scroll-margin-top:150px;}
  .warn{font-size:12.5px; color:#a00; display:none; margin-top:8px;}
  .gatebox{border:2px solid var(--rag-a); background:#fff8ec; border-radius:5px; padding:16px 18px; margin:14px 0; display:none;}
  .gatebox.show{display:block;}
  /* result */
  .result{display:none; border-top:2px solid var(--ink); background:var(--panel); padding:26px 24px; border-radius:0 0 4px 4px;}
  .result.show{display:block;}
  .bucket-banner{border-radius:6px; padding:20px 22px; color:#fff; margin-bottom:16px;}
  .bucket-banner .eyebrow{color:rgba(255,255,255,.75);}
  .bucket-banner h3{color:#fff; font-size:21px; margin-bottom:6px;}
  .bucket-banner p{font-size:13.5px; color:rgba(255,255,255,.92); max-width:720px;}
  .meter{height:10px; background:#ddd; border-radius:6px; overflow:hidden; max-width:380px; margin:6px 0 4px; position:relative;}
  .meter div{height:100%; width:0%; transition:width .5s;}
  .idxrow{font-size:12.5px; color:var(--soft); margin-bottom:14px;}
  .flagcard{background:#fff; border:1px solid var(--line); border-left:4px solid var(--rag-r); border-radius:4px; padding:12px 15px; margin-bottom:8px;}
  .flagcard.amber{border-left-color:var(--rag-a);}
  .flagcard b{font-size:13px; display:block; margin-bottom:2px;}
  .flagcard span{font-size:12.5px; color:var(--mid);}
  .tabrow{background:#fff; border:1px solid var(--line); border-radius:4px; margin-bottom:6px; overflow:hidden;}
  .tabrow-h{display:flex; align-items:center; gap:10px; padding:10px 14px; cursor:pointer;}
  .tabrow-h:hover{background:var(--panel);}
  .tabrow-h .n{font-family:"Courier New",monospace; font-size:10.5px; color:var(--brand); font-weight:700;}
  .tabrow-h h5{font-size:13px; flex:1; margin:0;}
  .ragchip{font-size:9.5px; font-weight:800; letter-spacing:.08em; padding:3px 9px; border-radius:12px; color:#fff;}
  .minibar{width:90px; height:6px; background:#e4e4e4; border-radius:4px; overflow:hidden;}
  .minibar div{height:100%;}
  .tabrow-h .pm{font-family:"Courier New",monospace; font-size:14px; color:var(--soft); width:12px; text-align:center;}
  .tabrow-b{display:none; border-top:1px solid var(--line); background:#fcfcfc; padding:12px 16px;}
  .tabrow.open .tabrow-b{display:block;}
  .gap{border-left:3px solid var(--ink); padding:4px 0 4px 12px; margin-bottom:10px;}
  .gap b{font-size:12.5px; display:block;}
  .gap span{font-size:12px; color:var(--mid);}
  .res-card{background:#fff; border:1px solid var(--line); border-radius:4px; padding:14px 16px; margin-top:12px;}
  .res-card h4{font-size:13.5px; margin-bottom:4px;}
  .res-card p{font-size:13px; color:var(--mid);}
  .fineprint{font-size:11.5px; color:var(--soft); margin-top:10px;}
  .ph{background:repeating-linear-gradient(45deg,#eee,#eee 10px,#f7f7f7 10px,#f7f7f7 20px); border:1px dashed #bbb; color:#999; display:inline-flex; align-items:center; justify-content:center; font-size:12px; text-align:center; border-radius:3px;}
  /* risk grid */
  .riskgrid{display:grid; grid-template-columns:1fr 1fr 1fr; gap:14px; margin-top:20px;}
  .risk{border:1px solid var(--line); border-radius:5px; background:#fff; padding:18px; cursor:pointer; transition:border-color .15s; position:relative;}
  .risk:hover{border-color:var(--ink);}
  .risk .rn{font-family:"Courier New",monospace; font-size:11px; color:var(--brand); font-weight:700; letter-spacing:.08em;}
  .risk h3{font-size:15px; margin:6px 0;}
  .risk p{font-size:12.5px; color:var(--mid);}
  .risk .shield{display:none; margin-top:10px; border-top:1px solid var(--line); padding-top:10px;}
  .risk.open .shield{display:block;}
  .risk .shield .lbl{font-family:"Courier New",monospace; font-size:10px; letter-spacing:.12em; color:var(--brand); font-weight:700; margin-bottom:4px;}
  .risk .tabref{display:inline-block; margin-top:10px; font-size:10.5px; font-family:"Courier New",monospace; color:var(--soft); border:1px solid var(--line); border-radius:12px; padding:2px 9px;}
  .risk .flip{position:absolute; top:14px; right:14px; font-family:"Courier New",monospace; color:var(--soft); font-size:14px;}
  @media(max-width:760px){ .riskgrid{grid-template-columns:1fr;} .sec{padding:30px 22px;} }
