
:root{
  --ink:#0A1E3F;
  --ink-2:#3B4A63;
  --ink-3:#6C7A90;
  --paper:#FBFBFC;
  --panel:#FFFFFF;
  --rule:#DFE4EC;
  --rule-strong:#C3CBD9;
  --accent:#F07200;
  --accent-soft:#FFF1E2;
  --navy-deep:#071630;
  --ok:#1E7F5C;
  --prelim:#8A6D1F;
  --prelim-bg:#FDF4DC;
  --new:#2B5BA8;
  --new-bg:#E9F0FB;
  --shadow:0 1px 2px rgba(10,30,63,.06), 0 8px 24px rgba(10,30,63,.06);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:64px}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto} *{transition:none !important;animation:none !important}}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:'Archivo',system-ui,-apple-system,'Noto Sans TC','Microsoft JhengHei',sans-serif;
  font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;
}
h1,h2,h3{margin:0;font-weight:700;letter-spacing:-.02em;line-height:1.1}
h2{font-size:clamp(26px,3.2vw,38px)}
h3{font-size:19px;letter-spacing:-.01em}
p{margin:0 0 1em}
a{color:var(--ink)}
.wrap{max-width:1368px;margin:0 auto;padding:0 24px}
.mono{font-family:'IBM Plex Mono',ui-monospace,monospace;font-variant-numeric:tabular-nums}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:3px}

/* ── HEADER */
header.site{position:sticky;top:0;z-index:60;background:rgba(251,251,252,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule)}
.bar{display:flex;align-items:center;gap:28px;height:60px}
.brand{display:flex;align-items:center;text-decoration:none;white-space:nowrap}
.brand img{height:23px;width:auto;display:block;margin-right:12px}
.brand .alt{display:none;font-weight:700;font-size:19px;letter-spacing:-.03em;color:var(--accent);margin-right:12px}
.brand .div{width:1px;height:19px;background:var(--rule-strong);margin-right:12px}
.brand .txt{font-weight:700;font-size:18px;letter-spacing:-.03em;color:var(--ink)}
@media(max-width:420px){.brand img{height:20px}.brand .txt{font-size:15px}.langbtn{padding:7px 9px}}
@media(max-width:350px){.brand .div,.brand .txt{display:none}}
.bar nav{display:flex;gap:22px;margin-left:auto;flex-wrap:wrap}
.bar nav a{font-size:14.5px;color:var(--ink-2);text-decoration:none;padding:4px 0;border-bottom:2px solid transparent}
.bar nav a:hover{color:var(--ink);border-bottom-color:var(--accent)}
.langsw{display:flex;margin-left:22px;border:1px solid var(--rule-strong);border-radius:9px;overflow:hidden;background:#fff}
.langbtn{white-space:nowrap;font-family:inherit;font-size:13px;font-weight:600;color:var(--ink-3);background:#fff;border:none;padding:7px 11px;cursor:pointer;line-height:1.4}
.langbtn + .langbtn{border-left:1px solid var(--rule-strong)}
.langbtn:hover{color:var(--ink);background:var(--accent-soft)}
.langbtn[aria-pressed="true"]{background:var(--ink);color:#fff}
.burger{display:none;margin-left:0;background:#fff;border:1px solid var(--rule-strong);border-radius:9px;
  width:42px;height:38px;cursor:pointer;padding:0;flex-direction:column;align-items:center;justify-content:center}
.burger span{display:block;width:18px;height:2px;background:var(--ink);margin:2px 0;border-radius:2px}
.burger[aria-expanded="true"]{background:var(--ink);border-color:var(--ink)}
.burger[aria-expanded="true"] span{background:#fff}
@media(max-width:960px){
  .bar{height:58px;position:relative;gap:10px}
  .langsw{order:2;margin-left:auto;margin-right:0}
  .burger{order:3}
  .burger{display:flex}
  .bar nav{display:none;position:absolute;left:0;right:0;top:100%;margin:0;background:#fff;border-bottom:1px solid var(--rule);box-shadow:0 12px 28px rgba(10,30,63,.1);padding:6px 0}
  .bar nav.open{display:block}
  .bar nav a{display:block;padding:13px 16px;font-size:16px;border-bottom:none}
  .bar nav a:hover{background:#F1F5FB;border-bottom-color:transparent}
}

/* ── HERO */
.hero{padding:56px 0 8px;border-bottom:1px solid var(--rule)}
.hero h1{font-size:clamp(32px,5vw,54px)}
.hero .sub{font-size:clamp(17px,2vw,20px);color:var(--ink-2);max-width:60ch;margin-top:18px}
.hero .claim{margin-top:14px;font-size:15px;color:var(--ink-3)}
.hero-top{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:36px;align-items:center}
.hero-art{margin:0}
.hero-art svg{width:100%;height:auto;display:block}
.hero-art figcaption{font-size:12.5px;color:var(--ink-3);margin-top:6px}
.chain .ln{fill:none;stroke:var(--ink-2);stroke-width:1.2;stroke-linecap:round}
.chain .thin{stroke:var(--ink-3);stroke-width:.9}
.chain .flow{stroke-dasharray:5 7;animation:dash var(--flow,1.6s) linear infinite}
.chain .flow.hv{stroke:var(--accent)}
.chain .frame{fill:#fff;stroke:var(--ink-2);stroke-width:1.2}
.chain .plain{fill:#fff;stroke:var(--rule-strong);stroke-width:1.1}
.chain .dash{fill:#fff;stroke:var(--ink-3);stroke-width:1;stroke-dasharray:3 4}
.chain .blk{cursor:pointer}
.chain .blk rect{fill:#F4F6FA;stroke:var(--ink-3);stroke-width:1;transition:fill .15s,stroke .15s}
.chain .blk:hover rect{fill:var(--accent-soft);stroke:var(--accent)}
.chain .blk.hot rect{fill:var(--accent);stroke:var(--accent)}
.chain .blk.hot text{fill:#fff}
.chain .blk.dim rect{opacity:.55}
.chain text{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.06em;fill:var(--ink-2)}
.chain .cap{font-size:8.5px;letter-spacing:.11em;fill:var(--ink-3)}
.chain .row{font-size:9.5px;letter-spacing:.14em;fill:var(--ink);font-weight:600}
.chain .blk text{font-size:8.5px;font-weight:600;fill:var(--ink-2);pointer-events:none}
.chain .rdg{font-size:14px;letter-spacing:.05em;fill:var(--accent);font-weight:600}
.chain .rdg2{font-size:9.5px;letter-spacing:.11em;fill:var(--ink-3)}
.chain .grid{opacity:.55}
@keyframes dash{to{stroke-dashoffset:-24}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.72}}
.chain .blk.hot rect{animation:pulse 1.6s ease-in-out infinite}
@media(max-width:980px){.hero-top{grid-template-columns:1fr;gap:22px}.hero-art{max-width:640px}}
.docrow{display:flex;align-items:center;flex-wrap:wrap;margin:18px 0 2px;gap:12px 16px}
.guidebtn svg{flex:none;margin-right:8px}
.guiderow{margin:16px 0 0}
.doclink{font-size:14px;color:var(--ink-2);text-decoration:none;border-bottom:1px solid var(--rule-strong);padding-bottom:1px}
.doclink:hover{color:var(--ink);border-bottom-color:var(--accent)}
.docnote{font-size:12.5px;color:var(--ink-3);margin:8px 0 0}
@media(max-width:560px){.docrow{display:block}.docrow .btn{display:flex;width:100%;justify-content:center;margin:0 0 12px}.guidebtn{display:flex;width:100%;justify-content:center}}

/* selector */
.selector{margin:34px 0 0;background:var(--panel);border:1px solid var(--rule);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}
.sel-head{padding:18px 22px 6px}
.sel-head .q{font-size:17px;font-weight:600}
.sel-head .hint{font-size:13.5px;color:var(--ink-3);margin-top:2px}
.rail{display:flex;gap:8px;flex-wrap:wrap;padding:14px 22px 6px}
.rail2{display:flex;gap:7px;flex-wrap:wrap;padding:8px 22px 20px}
.cell{font-family:inherit;font-size:15px;font-weight:600;padding:9px 14px;border-radius:9px;border:1px solid var(--rule-strong);
  background:#fff;color:var(--ink-2);cursor:pointer;transition:background .12s,border-color .12s,color .12s}
.cell:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}
.cell[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.cell[aria-pressed="true"]:hover{background:#0E2C5A;border-color:#0E2C5A;color:#fff}
.sock{font-family:inherit;font-size:13.5px;font-weight:500;padding:7px 12px;border-radius:8px;border:1px solid var(--rule-strong);
  background:#fff;color:var(--ink-2);cursor:pointer;text-align:left;line-height:1.3}
.sock .qn{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--ink-3);display:block}
.sock:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}
.sock[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff}
.sock[aria-pressed="true"] .qn{color:#FFE2C2}
.readout{border-top:1px solid var(--rule);background:linear-gradient(180deg,#fff,#F7F9FC);padding:0}
.readout.empty{padding:16px 22px;color:var(--ink-3);font-size:14.5px}
.ro-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule)}
@media(max-width:760px){.ro-grid{grid-template-columns:repeat(2,1fr)}}
.ro-cell{background:#fff;padding:16px 22px}
.ro-cell .k{font-size:12.5px;color:var(--ink-3);letter-spacing:.01em}
.ro-cell .v{font-family:'IBM Plex Mono',monospace;font-size:18px;font-weight:600;margin-top:4px;letter-spacing:-.02em;line-height:1.3}
.ro-note{background:#fff;border-top:1px solid var(--rule);padding:14px 22px;font-size:14px;color:var(--ink-2);display:flex;gap:12px 16px;align-items:center;flex-wrap:wrap}
.ro-note > span{flex:1 1 420px}
.btn{display:inline-flex;align-items:center;gap:8px;font-family:inherit;font-size:15px;font-weight:600;padding:11px 20px;border-radius:9px;border:1px solid transparent;cursor:pointer;text-decoration:none}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{background:#D96700}
.btn-ghost{background:#fff;border-color:var(--rule-strong);color:var(--ink)}
.btn-ghost:hover{border-color:var(--ink)}
.btn:disabled{opacity:.45;cursor:not-allowed}

/* ── SECTIONS */
section{padding:64px 0}
section + section{border-top:1px solid var(--rule)}
.lead{max-width:66ch;color:var(--ink-2);font-size:17px;margin-top:14px}

/* value points */
.points{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:36px;border-top:1px solid var(--rule)}
@media(max-width:760px){.points{grid-template-columns:1fr}}
.point{padding:22px 22px 22px 0;border-right:1px solid var(--rule)}
.point:last-child{border-right:none}
@media(max-width:760px){.point{padding-right:0;border-right:none;border-bottom:1px solid var(--rule)}.point:last-child{border-bottom:none}}
.point .fig{font-family:'IBM Plex Mono',monospace;font-size:26px;font-weight:600;color:var(--accent);letter-spacing:-.03em}
.point h3{margin:6px 0 6px}
.point p{font-size:14.5px;color:var(--ink-2);margin:0}

/* table */
.controls{display:flex;gap:10px 14px;flex-wrap:wrap;align-items:center;margin:28px 0 14px}
.chipset{display:flex;gap:6px;flex-wrap:wrap}
.chip{font-size:13.5px;font-weight:500;padding:7px 13px;border-radius:20px;border:1px solid var(--rule-strong);background:#fff;cursor:pointer;color:var(--ink-2);font-family:inherit}
.chip:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}
.chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.chip[aria-pressed="true"]:hover{background:#0E2C5A;border-color:#0E2C5A;color:#fff}
.chip.accent[aria-pressed="true"]{background:var(--accent);border-color:var(--accent)}
.chip.accent[aria-pressed="true"]:hover{background:#D96700;border-color:#D96700}
.chip.sockf{background:var(--accent-soft);border-color:var(--accent);color:var(--ink);font-weight:600}
.chip.sockf:hover{background:#FFE7CC}
.spacer{flex:1}
.count{font-size:13.5px;color:var(--ink-3)}
.resetf{display:none;align-items:center;gap:6px;font-family:inherit;font-size:13.5px;font-weight:600;padding:7px 13px;border-radius:20px;border:1px solid var(--accent);background:#fff;color:var(--accent);cursor:pointer;white-space:nowrap}
.resetf.on{display:inline-flex}
.rcount{display:flex;align-items:center;gap:12px;margin-left:auto}
.resetf:hover{background:var(--accent);color:#fff}
.resetf .n{font-family:'IBM Plex Mono',monospace;font-size:12px;opacity:.85}
.empty-row .resetf{display:inline-flex;margin-left:8px;vertical-align:middle}
.tablewrap{border:1px solid var(--rule);border-radius:12px;background:#fff;overflow:auto;box-shadow:var(--shadow);max-height:78vh}
table{border-collapse:collapse;width:100%;min-width:980px}
.ptbl{min-width:0}
.ptbl td.wr{white-space:normal}
@media(max-width:1400px){.ptbl th,.ptbl td{padding:12px 10px}.ptbl td.wr{min-width:88px}.ptbl .rowbtn{margin-right:4px}}
@media(max-width:1180px){.ptbl th,.ptbl td{padding:11px 7px;font-size:14px}.ptbl td.ty{font-size:12.5px}.ptbl .nomark{display:block;margin:0}.ptbl a.rowbtn{padding:5px 8px}}
@media(max-width:980px) and (min-width:701px){.ptbl thead th:nth-child(2),.ptbl tbody td:nth-child(2),.ptbl thead th:nth-child(6),.ptbl tbody td:nth-child(6){display:none}}
@media(max-width:820px) and (min-width:701px){.ptbl thead th:nth-child(8),.ptbl tbody td:nth-child(8){display:none}}
th,td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--rule);font-size:14.5px;white-space:nowrap}
thead th{position:sticky;top:0;background:#F4F6FA;font-size:12.5px;font-weight:600;color:var(--ink-2);border-bottom:1px solid var(--rule-strong);cursor:pointer;z-index:2}
thead th .arrow{color:var(--accent);font-size:11px}
tbody tr{cursor:pointer;transition:background-color .1s linear}
tbody tr:hover{background:#EDF2FA}
tbody tr:hover td:first-child{box-shadow:inset 3px 0 0 var(--accent)}
tbody tr.picked{background:var(--accent-soft)}
tbody tr.picked:hover{background:#FFE7CC}
tbody tr.opened{background:#EDF2FA}
td.acts{text-align:right;white-space:nowrap}
.rowbtn{font-family:inherit;font-size:12.5px;font-weight:600;color:var(--ink-2);background:#fff;border:1px solid var(--rule-strong);border-radius:7px;padding:5px 10px;cursor:pointer;margin-right:6px}
.rowbtn:hover{border-color:var(--accent);color:var(--accent)}
a.rowbtn{display:inline-flex;align-items:center;gap:5px;text-decoration:none;color:var(--accent);border-color:var(--accent)}
a.rowbtn:hover{background:var(--accent);color:#fff}
a.rowbtn.gd{color:var(--ink);border-color:var(--rule-strong)}
a.rowbtn.gd:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.rowbtn.na{color:var(--ink-3);border-color:var(--rule);cursor:default}
.rowbtn.na:hover{color:var(--ink-3);border-color:var(--rule)}
.dslink{font-size:12px;font-weight:600;color:var(--accent);text-decoration:none;margin-left:8px;white-space:nowrap}
.dslink:hover{text-decoration:underline}
a.pnlink{font-family:'IBM Plex Mono',monospace;font-weight:600;color:var(--ink);text-decoration:none;border-bottom:1px dashed var(--accent)}
a.pnlink:hover{color:var(--accent);border-bottom-style:solid}
a.pnlink sup{font-size:9px;color:var(--accent);margin-left:1px}
span.pnplain{font-family:'IBM Plex Mono',monospace;font-weight:600}

/* schematic block popover */
.bpop{position:fixed;z-index:84;display:none;width:360px;max-width:calc(100vw - 24px);max-height:min(72vh,560px);overflow:auto;background:#fff;border:1px solid var(--rule-strong);border-radius:12px;box-shadow:0 14px 36px rgba(7,22,48,.2);pointer-events:none;overscroll-behavior:contain}
.bpop.on{display:block}
.bpop{scrollbar-width:auto;scrollbar-color:#9AA6B8 #EEF1F6}
.bpop::-webkit-scrollbar{width:14px}
.bpop::-webkit-scrollbar-track{background:#EEF1F6;border-radius:0 12px 12px 0}
.bpop::-webkit-scrollbar-thumb{background:#9AA6B8;border-radius:8px;border:3px solid #EEF1F6;min-height:40px}
.bpop::-webkit-scrollbar-thumb:hover{background:var(--accent)}
.bpop.pinned{pointer-events:auto;border-color:var(--accent)}
.bpop .bp-head{position:sticky;top:0;background:#fff;display:flex;align-items:flex-start;gap:10px;padding:12px 14px 10px;border-bottom:1px solid var(--rule);z-index:1}
.bpop .bp-ttl{flex:1;min-width:0}
.bpop .bp-n{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--accent);font-weight:600;letter-spacing:.06em}
.bpop .bp-h{font-weight:700;font-size:15.5px;line-height:1.25;letter-spacing:-.01em}
.bpop .bp-hint{font-size:11.5px;color:var(--ink-3);margin-top:2px}
.bpop.pinned .bp-hint{display:none}
.bpop .bp-x{display:none;flex:none;width:28px;height:28px;border-radius:7px;border:1px solid var(--rule);background:#fff;cursor:pointer;font-size:13px;line-height:1;color:var(--ink-2);font-family:inherit}
.bpop.pinned .bp-x{display:block}
.bpop .bp-x:hover{border-color:var(--ink)}
.bpop .bp-sock{padding:11px 14px 12px;border-bottom:1px solid var(--rule)}
.bpop .bp-sock:last-child{border-bottom:none}
.bpop .bp-sock.cur{background:var(--accent-soft)}
.bpop .bp-q{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--ink-3)}
.bpop .bp-name{font-weight:600;font-size:14px;line-height:1.3;margin:1px 0 8px}
.bpop dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0;font-size:13px}
.bpop dt{color:var(--ink-3);white-space:nowrap}
.bpop dd{margin:0;font-family:'IBM Plex Mono',monospace;font-weight:600;color:var(--ink);min-width:0}
.bpop dd.cls{color:var(--accent)}
.bpop .bp-parts{display:flex;flex-wrap:wrap;gap:4px 5px;font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:500}
.bpop .bp-parts span{padding:1px 6px;border-radius:5px;background:#F1F4F9;color:var(--ink);white-space:nowrap}
.bpop .bp-parts span.nw{background:var(--new-bg);color:var(--new)}
.bpop .bp-go{margin-top:10px;display:inline-flex;align-items:center;gap:6px;font-family:inherit;font-size:13px;font-weight:600;padding:7px 12px;border-radius:8px;border:1px solid var(--accent);background:#fff;color:var(--accent);cursor:pointer}
.bpop .bp-go:hover{background:var(--accent);color:#fff}
.bpop .bp-key{padding:8px 14px 10px;font-size:11.5px;color:var(--ink-3);border-top:1px solid var(--rule)}
.bpop .bp-key span{font-family:'IBM Plex Mono',monospace;padding:0 5px;border-radius:4px;background:var(--new-bg);color:var(--new)}
@media(max-width:700px){
  .bpop{left:8px !important;right:8px;top:auto !important;bottom:8px;width:auto;max-width:none;max-height:62vh}
}
/* hover peek */
.peek{position:fixed;z-index:85;display:none;width:290px;background:#fff;border:1px solid var(--rule-strong);border-radius:11px;box-shadow:0 12px 32px rgba(7,22,48,.18);padding:13px 15px;pointer-events:none}
.peek.on{display:block}
.peek .pk-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.peek .pk-aec{height:20px;width:auto;display:block;flex:none}
.peek .pk-pn{font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:15px}
.peek .pk-sub{font-size:12px;color:var(--ink-3);margin-top:1px}
.peek .pk-specs{font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--ink-2);margin-top:9px;line-height:1.7;white-space:pre}
.peek .pk-tip{font-size:12.5px;color:var(--ink-2);margin-top:9px;padding-top:9px;border-top:1px solid var(--rule)}
.peek .pk-tip b{color:var(--accent)}
td.pn{font-family:'IBM Plex Mono',monospace;font-weight:600}
td.num{font-family:'IBM Plex Mono',monospace}
td.ty{font-size:13px;color:var(--ink-2)}
.tag{font-size:11.5px;font-weight:600;padding:3px 8px;border-radius:5px;background:#EAF5F0;color:var(--ok)}
.tag.prelim{background:var(--prelim-bg);color:var(--prelim)}
.tag.new{background:var(--new-bg);color:var(--new)}
.badge{font-family:'Archivo',sans-serif;font-size:10.5px;font-weight:700;padding:2px 6px;border-radius:4px;margin-left:6px;vertical-align:1px;letter-spacing:.02em}
.badge.aec{background:var(--ink);color:#fff}
.pick{width:26px;height:26px;border-radius:7px;border:1px solid var(--rule-strong);background:#fff;cursor:pointer;font-size:15px;line-height:1;color:var(--ink-2);font-family:inherit}
tr.picked .pick{background:var(--accent);border-color:var(--accent);color:#fff}
.fitnote{font-family:'Archivo',sans-serif;font-size:11.5px;color:var(--accent);font-weight:600;white-space:nowrap;margin-left:6px}
.empty-row td{color:var(--ink-3);padding:28px 14px;white-space:normal}
.nomark{color:var(--ink-3);font-size:11px;margin-left:2px}

/* detail drawer */
.drawer{border:1px solid var(--rule);border-top:none;border-radius:0 0 12px 12px;background:#fff;padding:0;display:none}
.drawer.open{display:block;padding:20px 22px}
.drawer .dh{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.drawer .dh .pn{font-family:'IBM Plex Mono',monospace;font-size:22px;font-weight:600}
.dgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:14px;margin:16px 0 4px}
.dgrid div .k{font-size:12px;color:var(--ink-3)}
.dgrid div .v{font-family:'IBM Plex Mono',monospace;font-size:17px;font-weight:600}
.used{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 4px}
.used .lbl{font-size:12.5px;color:var(--ink-3);margin-right:4px;align-self:center}
.used button{font-family:inherit;font-size:12.5px;padding:4px 9px;border-radius:6px;border:1px solid var(--rule-strong);background:#fff;color:var(--ink-2);cursor:pointer}
.used button:hover{border-color:var(--accent);color:var(--accent)}
.used button.cur{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}

/* topology */
.ptabs{display:flex;gap:8px;flex-wrap:wrap;margin-top:28px}
.stages{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;margin-top:20px}
.stage{background:#fff;border:1px solid var(--rule);border-radius:12px;padding:16px 18px;box-shadow:var(--shadow);display:flex;flex-direction:column}
.stage .sn{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--accent);font-weight:600;letter-spacing:.06em}
.stage h3{margin:4px 0 6px;font-size:17px}
.stage p{font-size:13.5px;color:var(--ink-2);margin:0 0 10px}
.stage .socks{display:flex;flex-direction:column;gap:6px;margin-top:auto}
.stage .socks button{display:flex;justify-content:space-between;gap:10px;align-items:center;font-family:inherit;font-size:13.5px;text-align:left;
  padding:8px 10px;border-radius:8px;border:1px solid var(--rule);background:#F7F9FC;color:var(--ink);cursor:pointer}
.stage .socks button:hover{border-color:var(--accent);background:var(--accent-soft)}
.stage .socks button[aria-pressed="true"]{border-color:var(--accent);background:var(--accent);color:#fff}
.stage .socks .c{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--ink-3);white-space:nowrap}
.stage .socks button[aria-pressed="true"] .c{color:#FFE2C2}

/* reference */
.refgrid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:28px;align-items:start}
@media(max-width:900px){.refgrid{grid-template-columns:1fr}}
.refgrid > div{min-width:0}
.refgrid h3{font-size:16px;margin:0 0 10px}
.ref{border:1px solid var(--rule);border-radius:12px;background:#fff;overflow:auto}
.ref table{min-width:0}
.ref th,.ref td{padding:10px 12px;font-size:14px}
.ref thead th{cursor:default}
.ref tbody tr{cursor:default}
.ref tbody tr:hover{background:#F7F9FC}
.ref tbody tr:hover td:first-child{box-shadow:none}
.ref td.k{color:var(--ink-2)}
.ref .sub{font-size:12px;color:var(--ink-3)}
.footnote{font-size:13px;color:var(--ink-3);margin-top:14px;max-width:78ch}
.taphint{display:none;font-size:12.5px;color:var(--ink-3);margin:0 0 8px}

/* steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:34px}
@media(max-width:700px){.steps{grid-template-columns:1fr}}
.step h3{margin-bottom:6px}
.step p{font-size:14.5px;color:var(--ink-2)}
.step .lbl{font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--accent);font-weight:600}

/* contact */
.contact{background:var(--navy-deep);color:#fff}
.contact h2{color:#fff}
.contact .lead{color:#B9C6DC}
.contact .btn-ghost{background:transparent;border-color:#3B5580;color:#fff}
.contact .btn-ghost:hover{border-color:#fff}
.contact a{color:#fff}
.cbtns{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.cmeta{margin-top:26px;font-size:14px;color:#8FA2C0}

/* ── DRAGGABLE SAMPLE CART */
.linkish{background:none;border:none;color:var(--ink-3);font-size:13px;cursor:pointer;font-family:inherit;text-decoration:underline}
.cart{position:fixed;z-index:80;width:420px;max-width:calc(100vw - 24px);background:#fff;border:1px solid var(--rule-strong);border-radius:14px;box-shadow:0 18px 48px rgba(7,22,48,.24);display:none;overflow:hidden}
.cart.show{display:block}
.cart.wide{width:780px}
.cart-head{display:flex;align-items:center;gap:10px;padding:11px 12px 11px 14px;background:var(--ink);color:#fff;cursor:move;user-select:none;-webkit-user-select:none}
.cart-head .grip{letter-spacing:2px;color:#6D82A6;font-size:13px;line-height:1}
.cart-head .ttl{font-size:14.5px;font-weight:600;flex:1}
.cart-head .ttl .n{font-family:'IBM Plex Mono',monospace;color:#FFB25E}
.cart-head button{background:transparent;border:1px solid #41547A;color:#fff;border-radius:7px;min-width:28px;height:26px;padding:0 7px;cursor:pointer;font-size:13px;line-height:1;font-family:inherit}
.cart-head button:hover{border-color:#fff}
.cart-head button:disabled{opacity:.4;cursor:not-allowed}
.cart-body{max-height:46vh;overflow:auto}
.cart-row{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--rule);transition:background-color .1s linear}
.cart-row:last-child{border-bottom:none}
.cart-row:hover{background:#F7F9FC}
.cart-row .info{flex:1;min-width:0}
.cart-row .pn{font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:14.5px}
.cart-row .spec{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--ink-3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cart-row input.qty{width:64px;padding:6px 8px;border:1px solid var(--rule-strong);border-radius:7px;font-family:'IBM Plex Mono',monospace;font-size:14px;text-align:right}
.cart-row input.qty:focus{border-color:var(--accent);outline:none}
.cart-row .qwrap{text-align:right}
.cart-row .qlbl{font-size:11px;color:var(--ink-3);display:block;margin-bottom:2px}
.cart-row .rm{background:#fff;border:1px solid var(--rule-strong);border-radius:7px;width:26px;height:26px;cursor:pointer;color:var(--ink-3);font-size:13px;line-height:1;font-family:inherit}
.cart-row .rm:hover{border-color:#C0392B;color:#C0392B}
.cart-foot{display:flex;gap:8px;align-items:center;padding:11px 14px;border-top:1px solid var(--rule);background:#F7F9FC;flex-wrap:wrap}
.cart-foot .btn{padding:9px 15px;font-size:14px}
.cmp{overflow:auto;max-height:52vh}
.cmp table{min-width:0;width:100%}
.cmp th,.cmp td{padding:9px 12px;font-size:13.5px;white-space:nowrap;border-bottom:1px solid var(--rule)}
.cmp tbody th{text-align:left;font-weight:500;color:var(--ink-3);font-size:12.5px;background:#fff;cursor:default;position:static}
.cmp thead th{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--ink);background:#F4F6FA;cursor:default}
.cmp td{font-family:'IBM Plex Mono',monospace}
.cmp td.best{color:var(--accent);font-weight:600}
.cart-tab{position:fixed;z-index:80;display:none;align-items:center;gap:9px;background:var(--ink);color:#fff;border:none;border-radius:11px;padding:12px 17px;font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 10px 26px rgba(7,22,48,.28)}
.cart-tab.show{display:flex}
.cart-tab .n{font-family:'IBM Plex Mono',monospace;color:#FFB25E}
@media(max-width:820px){.cart.wide{width:calc(100vw - 24px)}}
@media(max-width:560px){.cart{width:calc(100vw - 16px)}.cart-body{max-height:38vh}}

/* ── MODAL FORM */
.overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:90;background:rgba(7,22,48,.55);display:none;padding:28px 16px;overflow-y:auto}
.overlay.open{display:block}
.modal{background:#fff;border-radius:14px;width:100%;max-width:660px;box-shadow:0 24px 60px rgba(7,22,48,.34);position:relative;margin:0 auto}
.modal header{padding:22px 26px 16px;border-bottom:1px solid var(--rule)}
.modal header h3{font-size:22px}
.modal header p{margin:6px 0 0;font-size:14.5px;color:var(--ink-2)}
.modal .body{padding:20px 26px 8px}
.modal footer{padding:16px 26px 22px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.xclose{position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:8px;border:1px solid var(--rule);background:#fff;cursor:pointer;font-size:16px;line-height:1;color:var(--ink-2);font-family:inherit}
.xclose:hover{border-color:var(--ink)}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}
@media(max-width:600px){.fgrid{grid-template-columns:1fr}}
.field{display:flex;flex-direction:column;gap:5px}
.field.wide{grid-column:1 / -1}
.field label{font-size:13px;color:var(--ink-2);font-weight:500}
.field label .req{color:var(--accent)}
.field input,.field select,.field textarea{font-family:inherit;font-size:15px;color:var(--ink);padding:10px 12px;border:1px solid var(--rule-strong);border-radius:8px;background:#fff;width:100%}
.field textarea{min-height:80px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px rgba(240,114,0,.15)}
.field input.bad{border-color:#C0392B;background:#FDF3F2}
.field .err{font-size:12.5px;color:#C0392B;display:none}
.field .err.show{display:block}
.fieldset-note{font-size:12.5px;color:var(--ink-3);margin:18px 0 10px;padding-top:14px;border-top:1px solid var(--rule)}
.formstatus{font-size:14px;color:var(--ink-2);flex:1;min-width:140px}
.formstatus.bad{color:#C0392B}
.sent{padding:34px 26px 30px}
.sent h3{font-size:22px;margin-bottom:8px}
.sent p{color:var(--ink-2);font-size:15px}
.honey{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}

footer.site{padding:28px 0;border-top:1px solid var(--rule);font-size:13.5px;color:var(--ink-3)}
footer.site a{color:var(--ink-2)}
.footcontact{display:block;margin-bottom:10px;font-size:14px;color:var(--ink-2);font-weight:600}
.footcontact:hover{color:var(--accent)}
.sronly{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ══ PHONE LAYOUT ══ */
@media(max-width:700px){
  html{scroll-padding-top:70px}
  .wrap{padding:0 16px}
  section{padding:44px 0}
  .hero{padding:34px 0 8px}
  .hero .sub{font-size:16.5px}
  .sel-head{padding:16px 16px 4px}
  .rail{padding:12px 16px 4px;gap:7px}
  .rail2{padding:8px 16px 16px}
  .cell{padding:9px 12px;font-size:14px}
  .ro-cell{padding:13px 16px}
  .ro-cell .v{font-size:16px}
  .ro-note{padding:13px 16px}
  .ro-note .btn{width:100%;justify-content:center}
  .controls{margin:20px 0 10px}
  table{min-width:0}
  th,td{padding:11px 8px;font-size:14px}
  .ptbl thead th:nth-child(2),.ptbl tbody td:nth-child(2),
  .ptbl thead th:nth-child(6),.ptbl tbody td:nth-child(6),
  .ptbl thead th:nth-child(7),.ptbl tbody td:nth-child(7),
  .ptbl thead th:nth-child(8),.ptbl tbody td:nth-child(8){display:none}
  .ptbl thead th:first-child,.ptbl tbody td:first-child{padding-left:12px}
  td.acts{padding-right:12px}
  .ptbl .rowbtn{display:none}
  .pick{width:32px;height:32px;font-size:17px}
  .fitnote{display:block;margin:2px 0 0;font-size:11px}
  .taphint{display:block}
  .drawer.open{padding:18px 16px}
  .dgrid{grid-template-columns:1fr 1fr;gap:12px}
  .overlay{padding:0}
  .modal{border-radius:0;min-height:100%;max-width:none}
  .modal .body{padding:18px 18px 8px}
  .modal header{padding:20px 18px 14px}
  .modal footer{padding:14px 18px 24px;position:sticky;bottom:0;background:#fff;border-top:1px solid var(--rule)}
  .modal footer .btn{flex:1;justify-content:center}
  .field input,.field select,.field textarea{font-size:16px}
  .cart-head{padding:12px 10px 12px 12px}
  .cart-head button{height:30px;min-width:34px}
  .cart-row{padding:11px 12px}
  .cart-row .rm{width:30px;height:30px}
  .cart-row input.qty{font-size:16px;width:60px}
  .cart-foot{padding:10px 12px}
  .cart-tab{padding:13px 18px}
}
@media(max-width:480px){
  th,td{padding:11px 6px}
  .ptbl thead th:nth-child(5),.ptbl tbody td:nth-child(5){display:none}
}
@media(max-width:430px){.ro-grid{grid-template-columns:1fr}.dgrid{grid-template-columns:1fr}}

/* ══════════════════════════════════════════════════════════════════════
   inergy Resource Center — shared components added on top of the
   PC & AI-server page system (above).
   ══════════════════════════════════════════════════════════════════════ */

/* ── SUITE BAR (links every center) */
.suite{background:var(--navy-deep);color:#C9D4E6;font-size:12.5px;position:sticky;top:0;z-index:61}
/* hold the bar's and header's space until rc.js fills them, so the page does not jump on load */
#rcSuite:empty{display:block;height:34px;background:var(--navy-deep)}
#rcHeader:empty{display:block;height:61px;border-bottom:1px solid var(--rule)}
@media(max-width:700px){#rcHeader:empty{height:59px}}
.qchips:empty{min-height:31px}.hstats:empty{min-height:57px}#famChips:empty{min-height:68px}#stChips:empty{min-height:31px}.count:empty{min-height:20px}
@media(max-width:700px){.qchips:empty{min-height:68px}.hstats:empty{min-height:119px}#famChips:empty,#stChips:empty{min-height:33px}}
.suite + header.site, header.site.under-suite{top:34px}
html{scroll-padding-top:98px}
.suite .wrap{display:flex;align-items:center;gap:4px;height:34px;overflow-x:auto;scrollbar-width:none}
.suite .wrap::-webkit-scrollbar{display:none}
.suite .lbl{font-family:'Archivo',sans-serif;font-size:13px;font-weight:700;letter-spacing:-.01em;color:#fff;margin-right:10px;white-space:nowrap}
.suite a{color:#C9D4E6;text-decoration:none;padding:5px 10px;border-radius:6px;white-space:nowrap}
.suite a.lbl{font-family:'Archivo',sans-serif;font-size:13px;font-weight:700;letter-spacing:-.01em;color:#fff;padding:5px 6px;margin-right:4px}
.suite a.lbl:hover{background:transparent;color:var(--accent)}
.suite a:hover{background:#13284A;color:#fff}
.suite a.cur{background:var(--accent);color:#fff;font-weight:600}
@media(max-width:700px){.suite .lbl{display:none}}
.suite .wrap{scroll-behavior:smooth}
.suite .sar{position:absolute;top:0;height:34px;width:46px;border:0;padding:0;margin:0;display:none;cursor:pointer;z-index:2;color:#fff;font:600 20px/34px 'Archivo',sans-serif;text-align:center;background:none}
.suite .sar.on{display:block}
.suite .sar:hover,.suite .sar:focus-visible{color:var(--accent)}
.suite .sar.l{left:0;padding-right:14px;background:linear-gradient(90deg,var(--navy-deep) 58%,rgba(7,22,48,0))}
.suite .sar.r{right:0;padding-left:14px;background:linear-gradient(270deg,var(--navy-deep) 58%,rgba(7,22,48,0))}

/* header brand variants */
.brand .alt{display:none}

/* ── SECTION HEAD */
.eyebrow{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.14em;color:var(--accent);font-weight:600;text-transform:uppercase;margin-bottom:10px}
.hstats{display:flex;gap:28px;flex-wrap:wrap;margin-top:22px}
.hstats div{min-width:110px}
.hstats .n{font-family:'IBM Plex Mono',monospace;font-size:24px;font-weight:600;letter-spacing:-.03em}
.hstats .l{font-size:12.5px;color:var(--ink-3)}

/* ── WIZARD (4 questions) */
.wiz{margin:34px 0 0;background:var(--panel);border:1px solid var(--rule);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}
.wiz-head{display:flex;align-items:flex-start;gap:16px;padding:18px 22px 10px;flex-wrap:wrap}
.wiz-head .q{font-size:17px;font-weight:600}
.wiz-head .hint{font-size:13.5px;color:var(--ink-3);margin-top:2px}
.wiz-head .grow{flex:1;min-width:240px}
.wiz-reset{font-family:inherit;font-size:13px;font-weight:600;padding:7px 12px;border-radius:8px;border:1px solid var(--rule-strong);background:#fff;color:var(--ink-2);cursor:pointer}
.wiz-reset:hover{border-color:var(--accent);color:var(--accent)}
.wstep{display:grid;grid-template-columns:230px minmax(0,1fr);gap:8px 18px;padding:14px 22px;border-top:1px solid var(--rule);align-items:start}
.wstep .wl{display:flex;gap:10px;align-items:flex-start}
.wstep .wn{flex:none;width:26px;height:26px;border-radius:50%;border:1.5px solid var(--rule-strong);display:flex;align-items:center;justify-content:center;font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:600;color:var(--ink-3);background:#fff}
.wstep.done .wn{background:var(--ink);border-color:var(--ink);color:#fff}
.wstep.cur .wn{background:var(--accent);border-color:var(--accent);color:#fff}
.wstep .wq{font-weight:600;font-size:15px;line-height:1.3}
.wstep .wsub{font-size:12.5px;color:var(--ink-3);margin-top:2px}
.wopts{display:flex;flex-wrap:wrap;gap:7px}
.wopts + .wopts{margin-top:8px}
.wopts .glbl{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.08em;color:var(--ink-3);align-self:center;margin-right:4px;min-width:64px}
.opt{font-family:inherit;font-size:14px;font-weight:500;padding:8px 13px;border-radius:9px;border:1px solid var(--rule-strong);background:#fff;color:var(--ink-2);cursor:pointer;text-align:left;line-height:1.25;transition:background .12s,border-color .12s,color .12s}
.opt small{display:block;font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--ink-3);margin-top:2px;font-weight:400}
.opt:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}
.opt[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.opt[aria-pressed="true"] small{color:#AFC0DA}
.opt:disabled{opacity:.38;cursor:not-allowed;background:#fff;border-color:var(--rule);color:var(--ink-3)}
.opt.sug{box-shadow:inset 0 0 0 1px var(--accent)}
@media(max-width:820px){.wstep{grid-template-columns:1fr}.wstep .wl{margin-bottom:4px}}

/* ── RECOMMENDATION */
.rec{border-top:1px solid var(--rule);background:linear-gradient(180deg,#fff,#F7F9FC)}
.rec.empty{padding:16px 22px;color:var(--ink-3);font-size:14.5px}
.rec-top{display:flex;gap:10px 18px;align-items:center;flex-wrap:wrap;padding:16px 22px;border-bottom:1px solid var(--rule);background:#fff}
.rec-top .ttl{font-size:16px;font-weight:700;flex:1 1 360px}
.rec-top .ttl small{display:block;font-weight:400;font-size:13.5px;color:var(--ink-3);margin-top:2px}
.rec-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--rule)}
@media(max-width:1080px){.rec-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.rec-grid{grid-template-columns:1fr}}
.rcell{background:#fff;padding:16px 20px;min-width:0}
.rcell .k{font-size:12px;color:var(--ink-3);letter-spacing:.02em;text-transform:uppercase;font-family:'IBM Plex Mono',monospace}
.rcell .pl{margin-top:8px;display:flex;flex-direction:column;gap:8px}
.rcell .pi{display:flex;gap:10px;align-items:flex-start}
.rcell .qty{flex:none;font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:600;color:var(--accent);background:var(--accent-soft);border-radius:5px;padding:2px 6px;margin-top:2px}
.rcell .pd{min-width:0}
.rcell .pd .d{font-size:12.5px;color:var(--ink-2);line-height:1.35;margin-top:1px}
.rcell .pd .w{font-size:12px;color:var(--ink-3);line-height:1.35;margin-top:2px}
.rcell .alt{margin-top:10px;padding-top:8px;border-top:1px dashed var(--rule);font-size:12.5px;color:var(--ink-3)}
.rcell .third{font-size:12.5px;color:var(--ink-3);margin-top:8px}
.rcell .none{font-size:13.5px;color:var(--ink-3)}
.rnotes{padding:14px 22px;background:#fff;border-top:1px solid var(--rule);display:flex;gap:12px 16px;align-items:center;flex-wrap:wrap}
.rnotes ul{margin:0;padding-left:18px;flex:1 1 420px;font-size:13.5px;color:var(--ink-2)}
.rnotes li{margin:2px 0}
.dlrow{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.dl{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:600;padding:5px 9px;border-radius:7px;border:1px solid var(--accent);color:var(--accent);text-decoration:none;background:#fff;white-space:nowrap}
.dl:hover{background:var(--accent);color:#fff}
.dl.full{background:var(--accent);color:#fff}
.dl.full:hover{background:#D96700}
.dl.req{border-color:var(--rule-strong);color:var(--ink-2);cursor:pointer;font-family:inherit}
.dl.req:hover{background:var(--ink);border-color:var(--ink);color:#fff}

/* ── TOPOLOGY LAB */
.lab{margin-top:28px;background:#fff;border:1px solid var(--rule);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}
.lab-tabs{display:flex;gap:8px;flex-wrap:wrap;padding:14px 18px;border-bottom:1px solid var(--rule);background:#F7F9FC}
.lab-body{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:0}
@media(max-width:1000px){.lab-body{grid-template-columns:1fr}}
.lab-stage{padding:10px 14px 6px;min-width:0;border-right:1px solid var(--rule)}
@media(max-width:1000px){.lab-stage{border-right:none;border-bottom:1px solid var(--rule)}}
.lab-stage svg{width:100%;height:auto;display:block}
.lab-side{padding:16px 18px;display:flex;flex-direction:column;gap:14px;min-width:0}
.lab-side h3{font-size:16px}
.lab-side p{font-size:13.5px;color:var(--ink-2);margin:0}
.ctl{display:flex;flex-direction:column;gap:6px}
.ctl .cl{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.1em;color:var(--ink-3);text-transform:uppercase}
.seg{display:flex;border:1px solid var(--rule-strong);border-radius:9px;overflow:hidden;background:#fff}
.seg button{flex:1;font-family:inherit;font-size:13px;font-weight:600;color:var(--ink-2);background:#fff;border:none;padding:8px 6px;cursor:pointer}
.seg button + button{border-left:1px solid var(--rule-strong)}
.seg button:hover{background:var(--accent-soft);color:var(--ink)}
.seg button[aria-pressed="true"]{background:var(--ink);color:#fff}
.ctl input[type=range]{width:100%;accent-color:var(--accent)}
.ctl .rv{font-family:'IBM Plex Mono',monospace;font-size:13px;font-weight:600}
.lab-btns{display:flex;gap:8px;flex-wrap:wrap}
.lab-btns button{font-family:inherit;font-size:13px;font-weight:600;padding:8px 12px;border-radius:8px;border:1px solid var(--rule-strong);background:#fff;color:var(--ink);cursor:pointer}
.lab-btns button:hover{border-color:var(--accent);color:var(--accent)}
.lab-btns button.warn{border-color:#C0392B;color:#C0392B}
.lab-btns button.warn:hover{background:#C0392B;color:#fff}
.lab-legend{font-size:12.5px;color:var(--ink-2);border-top:1px solid var(--rule);padding-top:12px;display:flex;flex-direction:column;gap:6px}
.lab-legend span{display:inline-flex;align-items:center;gap:8px}
.lab-legend i{display:inline-block;width:22px;height:0;border-top:2.5px solid var(--accent)}
.lab-legend i.g{border-top:2px dashed var(--ink-3)}
.lab-legend i.b{border-top:2.5px solid var(--new)}
.lab-legend i.sw{width:12px;height:12px;border:1.5px solid var(--ink-2);border-top-width:1.5px;border-radius:2px;background:var(--accent)}
.lab-read{font-family:'IBM Plex Mono',monospace;font-size:12.5px;line-height:1.7;color:var(--ink-2);background:#F7F9FC;border:1px solid var(--rule);border-radius:9px;padding:10px 12px;white-space:pre-wrap}
.lab-read b{color:var(--accent)}
.lab-parts{font-size:13px;color:var(--ink-2)}
.lab-parts .pnlink,.lab-parts .pnplain{font-size:13px}

/* svg classes used by rc-topo.js */
.tp text{font-family:'IBM Plex Mono',monospace;font-size:10px;fill:var(--ink-2);letter-spacing:.04em}
.tp .cap{font-size:9px;fill:var(--ink-3);letter-spacing:.1em}
.tp .ttl{font-size:10.5px;fill:var(--ink);font-weight:600;letter-spacing:.12em}
.tp .pn{font-size:10px;fill:var(--accent);font-weight:600}
.tp .w{fill:none;stroke:var(--ink-2);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.tp .w.thin{stroke:var(--rule-strong);stroke-width:1}
.tp .w.gate{stroke:var(--ink-3);stroke-width:.9;stroke-dasharray:3 3}
.tp .cur{fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:7 9;animation:dash .6s linear infinite}
.tp .cur.b{stroke:var(--new)}
.tp .cur.off{opacity:0}
.tp .sw rect{fill:#fff;stroke:var(--ink-2);stroke-width:1.3;transition:fill .05s}
.tp .sw.on rect{fill:var(--accent);stroke:var(--accent)}
.tp .sw.on text{fill:#fff}
.tp .sw text{font-size:9px;font-weight:600;pointer-events:none}
.tp .blk{cursor:pointer}
.tp .blk rect{fill:#F4F6FA;stroke:var(--ink-3);stroke-width:1;transition:fill .15s,stroke .15s}
.tp .blk:hover rect{fill:var(--accent-soft);stroke:var(--accent)}
.tp .blk.hot rect{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1.6}
.tp .box{fill:#fff;stroke:var(--ink-2);stroke-width:1.2}
.tp .dashbox{fill:none;stroke:var(--ink-3);stroke-width:1;stroke-dasharray:4 4}
.tp .motor{fill:#fff;stroke:var(--ink);stroke-width:1.6}
.tp .rotor{fill:var(--ink)}
.tp .rotorN{fill:var(--accent)}
.tp .coil{fill:none;stroke:var(--ink);stroke-width:1.5}
.tp .coil.lit{stroke:var(--accent);stroke-width:2.4}
.tp .wave{fill:none;stroke-width:1.6;stroke-linejoin:round}
.tp .wa{stroke:var(--accent)} .tp .wb{stroke:var(--new)} .tp .wc{stroke:var(--ok)} .tp .wk{stroke:var(--ink-2)}
.tp .axis{stroke:var(--rule);stroke-width:1}
.tp .cursor{stroke:var(--ink);stroke-width:1;stroke-dasharray:2 2}
.tp .grid{opacity:.5}
.tp .fault{fill:#C0392B;font-weight:600;font-size:11px}
.tp .vec{stroke:var(--accent);stroke-width:2.2;marker-end:url(#tpArrow)}
@media(prefers-reduced-motion: reduce){.tp .cur{animation:none}}

/* ── REFERENCE DESIGN CARDS */
.refcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin-top:20px}
.refcard{background:#fff;border:1px solid var(--rule);border-radius:12px;padding:16px 18px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:6px;min-width:0}
.refcard .rid{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--accent);font-weight:600;letter-spacing:.06em;display:flex;gap:8px;align-items:center}
.refcard h3{font-size:16.5px;line-height:1.25}
.refcard .rs{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--ink-3)}
.refcard .rb{font-size:13px;color:var(--ink-2);display:flex;flex-wrap:wrap;gap:4px 8px;margin-top:2px}
.refcard .rb .pnlink,.refcard .rb .pnplain{font-size:13px}
.refcard .dlrow{margin-top:auto;padding-top:8px}
.refcard.hot{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft),var(--shadow)}
.st{font-family:'Archivo',sans-serif;font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:4px;letter-spacing:.03em}
.st.live{background:#EAF5F0;color:var(--ok)}
.st.req{background:#F1F4F9;color:var(--ink-3)}

/* ── SERVICE STRIP */
.svc{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:30px;border:1px solid var(--rule);border-radius:12px;overflow:hidden;background:#fff}
.svc > div{padding:20px 22px;border-right:1px solid var(--rule)}
.svc > div:last-child{border-right:none}
.svc .fig{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--accent);font-weight:600;letter-spacing:.06em}
.svc h3{margin:6px 0 6px;font-size:17px}
.svc p{font-size:14px;color:var(--ink-2);margin:0}
@media(max-width:800px){.svc{grid-template-columns:1fr}.svc > div{border-right:none;border-bottom:1px solid var(--rule)}.svc > div:last-child{border-bottom:none}}

/* ── HUB */
.hub-hero{padding:56px 0 40px;border-bottom:1px solid var(--rule);background:
  radial-gradient(900px 300px at 85% 0%,rgba(240,114,0,.07),transparent 60%),var(--paper)}
.hub-hero h1{font-size:clamp(34px,5vw,58px);max-width:18ch}
.hub-hero .sub{font-size:clamp(17px,2vw,20px);color:var(--ink-2);max-width:62ch;margin-top:16px}
.search{position:relative;margin-top:28px;max-width:760px}
.search input{width:100%;font-family:inherit;font-size:17px;padding:16px 18px 16px 48px;border:1.5px solid var(--rule-strong);border-radius:12px;background:#fff;color:var(--ink);box-shadow:var(--shadow)}
.search input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px rgba(240,114,0,.14)}
.search .ico{position:absolute;left:17px;top:50%;transform:translateY(-50%);color:var(--ink-3)}
.sres{position:absolute;left:0;right:0;top:calc(100% + 6px);background:#fff;border:1px solid var(--rule-strong);border-radius:12px;box-shadow:0 18px 40px rgba(7,22,48,.16);z-index:40;max-height:60vh;overflow:auto;display:none}
.sres.on{display:block}
.sres a,.sres .row{display:flex;gap:12px;align-items:center;padding:11px 16px;border-bottom:1px solid var(--rule);text-decoration:none;color:var(--ink)}
.sres a:last-child{border-bottom:none}
.sres a:hover,.sres a.sel{background:#EDF2FA}
.sres .p{font-family:'IBM Plex Mono',monospace;font-weight:600;min-width:120px}
.sres .d{font-size:13.5px;color:var(--ink-2);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sres .c{font-size:11.5px;font-weight:600;color:var(--accent);white-space:nowrap}
.sres .row{color:var(--ink-3);font-size:14px}
.qchips{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
.centers{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:28px}
.ccard{display:flex;flex-direction:column;gap:8px;background:#fff;border:1px solid var(--rule);border-radius:14px;padding:20px 20px 18px;box-shadow:var(--shadow);text-decoration:none;color:var(--ink);transition:border-color .15s,transform .15s}
.ccard:hover{border-color:var(--accent);transform:translateY(-2px)}
.ccard .ci{width:44px;height:44px;border-radius:11px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center}
.ccard .ci svg{width:26px;height:26px;stroke:var(--accent);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ccard h3{font-size:18px}
.ccard p{font-size:14px;color:var(--ink-2);margin:0}
.ccard .cm{margin-top:auto;padding-top:8px;display:flex;gap:6px;flex-wrap:wrap}
.ccard .cm span{font-family:'IBM Plex Mono',monospace;font-size:11.5px;padding:2px 7px;border-radius:5px;background:#F1F4F9;color:var(--ink-2)}
.ccard .go{font-size:13.5px;font-weight:600;color:var(--accent)}
.ccard.new .ci{background:var(--accent)}
.ccard.new .ci svg{stroke:#fff}
.matrix{margin-top:24px}
.matrix table{min-width:860px}
.matrix th,.matrix td{text-align:center;font-size:13.5px;padding:10px 8px}
.matrix th:first-child,.matrix td:first-child{text-align:left;padding-left:14px}
.matrix thead th{cursor:default}
.matrix tbody tr{cursor:default}
.matrix td a{display:inline-block;min-width:26px;padding:3px 8px;border-radius:6px;background:var(--accent-soft);color:var(--accent);font-weight:700;text-decoration:none;font-size:12.5px}
.matrix td a:hover{background:var(--accent);color:#fff}
.matrix td.no{color:var(--rule-strong)}

/* footer suite links */
.fsuite{display:flex;gap:6px 16px;flex-wrap:wrap;margin-bottom:12px}
.fsuite a{color:var(--ink-2);text-decoration:none;font-size:13.5px}
.fsuite a:hover{color:var(--accent)}

/* small helpers */
.muted{color:var(--ink-3)}
.mt0{margin-top:0}
.kbd{font-family:'IBM Plex Mono',monospace;font-size:12px;padding:1px 6px;border:1px solid var(--rule-strong);border-radius:5px;background:#fff}
@media(max-width:700px){.hstats{gap:18px}.hstats .n{font-size:20px}.lab-stage{padding:6px 4px}}

/* inergy-Drive™ mark */
.drv{display:inline-block;font-family:'Archivo',sans-serif;font-size:10.5px;font-weight:700;letter-spacing:.01em;padding:2px 7px;border-radius:4px;margin-left:6px;vertical-align:1px;background:var(--ink);color:#fff;white-space:nowrap}
.eyebrow .drvmark{color:var(--ink);font-weight:700;text-transform:none;letter-spacing:.04em}

/* end of life */
.tag.eol{background:#FBE9E7;color:#B3261E}
.eolnote{margin-top:8px;padding:6px 9px;border-radius:6px;background:#FBE9E7;color:#8C1D18;font-size:12px;line-height:1.45}
.eolnote b{font-weight:700}

/* ── IC datasheet library ── */
.lib-controls{position:sticky;top:0;z-index:5;background:var(--bg,#FBFBFC);padding:14px 0 12px;margin:-14px 0 8px;border-bottom:1px solid var(--rule);display:flex;flex-direction:column;gap:10px}
.lib-row2{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.lib-row2 .spacer{flex:1}
.lib-controls .count{font-size:13px;color:var(--ink-3)}
.chip .cn{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--ink-3);margin-left:2px}
.chip[aria-pressed="true"] .cn{color:rgba(255,255,255,.75)}
.chip.eolc[aria-pressed="true"]{background:#B3261E;border-color:#B3261E}
.lgroup{margin-top:36px}
.lg-h{display:flex;align-items:baseline;gap:10px}
.lg-h h2{font-size:clamp(20px,2.2vw,26px)}
.lg-n{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--ink-3)}
.lg-sub{color:var(--ink-2);font-size:14.5px;margin-top:4px}
.lgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px;margin-top:16px}
.lcard{display:flex;flex-direction:column;gap:7px;background:#fff;border:1px solid var(--rule);border-radius:12px;padding:16px 16px 14px;box-shadow:var(--shadow);transition:border-color .15s}
.lcard:hover{border-color:var(--accent)}
.lcard.eol{background:#FFFBFA}
.lc-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.lc-top .tag{margin-left:auto}
.lc-top .tag + .drv{margin-left:6px}
.lc-pn{font-family:'IBM Plex Mono',monospace;font-size:16.5px;font-weight:600;letter-spacing:-.01em;color:var(--ink)}
.lc-pn.famname{font-family:'Archivo',sans-serif;font-size:16px}
.lc-d{font-size:14px;color:var(--ink-2);line-height:1.45}
.lc-s{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--ink-3);display:flex;gap:6px;flex-wrap:wrap}
.lc-r{font-size:12px;color:var(--ink-3);display:flex;gap:4px;flex-wrap:wrap;align-items:center}
.lc-r a{font-family:'IBM Plex Mono',monospace;font-size:11px;padding:1px 6px;border:1px solid var(--rule-strong);border-radius:4px;color:var(--ink-2);text-decoration:none}
.lc-r a:hover{border-color:var(--accent);color:var(--accent)}
.lc-a{display:flex;gap:6px;margin-top:auto;padding-top:6px;flex-wrap:wrap}
.lbtn{display:inline-flex;align-items:center;font-size:13px;font-weight:600;padding:7px 12px;border-radius:7px;border:1px solid var(--accent);color:var(--accent);background:#fff;text-decoration:none;cursor:pointer;font-family:inherit}
.lbtn:hover{background:var(--accent);color:#fff}
.lbtn.ghost{border-color:var(--rule-strong);color:var(--ink-2)}
.lbtn.ghost:hover{background:var(--accent-soft);color:var(--ink);border-color:var(--accent)}
.lbtn.req{border-color:var(--rule-strong);color:var(--ink-3)}
.lbtn.req:hover{background:var(--accent-soft);color:var(--ink);border-color:var(--accent)}
.lpick{margin-left:auto;width:34px;height:32px;border-radius:7px;border:1px solid var(--rule-strong);background:#fff;color:var(--ink-2);font-size:16px;cursor:pointer;font-family:inherit}
.lpick:hover{border-color:var(--accent);color:var(--accent)}
.lpick.on{background:var(--ok);border-color:var(--ok);color:#fff}
.lib-empty{padding:40px 0;color:var(--ink-2)}
.lib-empty .btn{margin-top:12px}
@media(max-width:700px){.lgrid{grid-template-columns:1fr}.lib-controls .chipset{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.lib-controls .chipset::-webkit-scrollbar{display:none}.chip{white-space:nowrap}}

.tag.nrnd{background:#FDF0DC;color:#8A4B00}
.nrndnote{margin-top:8px;padding:6px 9px;border-radius:6px;background:#FDF4DC;color:#6B4400;font-size:12px;line-height:1.45}
.nrndnote b{font-weight:700}

/* ── ASIC SUB-PAGES (iNGUI, design guide, downloads, product pages) */
.bar nav a[aria-current="page"]{color:var(--ink);font-weight:600;border-bottom-color:var(--accent)}
@media(max-width:960px){.bar nav a[aria-current="page"]{background:var(--accent-soft)}}
.hero.sub{padding-bottom:48px}
.hero.sub .hero-top{align-items:start}
.pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:20px}
.pill{font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:500;padding:4px 9px;border-radius:6px;border:1px solid var(--rule-strong);background:#fff;color:var(--ink-2);white-space:nowrap}
.pill.hi{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}
.pill.nw{border-color:#B9CCEB;background:var(--new-bg);color:var(--new)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px;margin-top:28px}
.cards.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
.cards.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:900px){.cards.c3{grid-template-columns:1fr}}
@media(max-width:760px){.cards.c2{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid var(--rule);border-radius:12px;padding:20px 22px;box-shadow:var(--shadow);min-width:0;display:flex;flex-direction:column}
.card .num{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--accent);font-weight:600;letter-spacing:.06em}
.card h3{font-size:17px;margin:4px 0 8px;line-height:1.25}
.card p{font-size:14.5px;color:var(--ink-2);margin:0 0 10px}
.card p:last-child{margin-bottom:0}
.card .meta{margin-top:auto;padding-top:12px;border-top:1px solid var(--rule);font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--ink-3)}
.card .sub{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--ink-3);margin:2px 0 10px}
.card .top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.card .top .tag{margin-left:auto}
.ticks,.arrows{list-style:none;margin:0;padding:0;font-size:14px;color:var(--ink-2)}
.ticks li,.arrows li{padding:5px 0 5px 22px;position:relative;border-bottom:1px solid #EEF1F6;line-height:1.45}
.ticks li:last-child,.arrows li:last-child{border-bottom:none}
.ticks li:before{content:'✓';position:absolute;left:2px;color:var(--ok);font-weight:700}
.arrows li:before{content:'→';position:absolute;left:2px;color:var(--accent);font-weight:600}
.kv{margin:4px 0 0;padding:0}
.kv div{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid #EEF1F6;font-size:13.5px}
.kv div:last-child{border-bottom:none}
.kv dt{color:var(--ink-3)}
.kv dd{margin:0;font-family:'IBM Plex Mono',monospace;font-weight:600;color:var(--ink);text-align:right}
.callout{margin-top:22px;padding:14px 18px;border-radius:10px;background:var(--accent-soft);border:1px solid #FFD9B0;font-size:14.5px;color:var(--ink-2);max-width:86ch}
.callout b,.callout strong{color:var(--ink)}
.fig{background:#fff;border:1px solid var(--rule);border-radius:12px;padding:12px;overflow:auto;box-shadow:var(--shadow)}
.fig svg,.fig img{display:block;width:100%;height:auto}
.fig.dark{background:#0C182C;border-color:#1E3660}
.figcap{font-size:12.5px;color:var(--ink-3);margin-top:8px}
.subh{font-size:20px;margin:40px 0 4px}
.flow{list-style:none;margin:0;padding:0;background:#fff;border:1px solid var(--rule);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}
.flow li{display:grid;grid-template-columns:44px 1fr;gap:4px 12px;padding:15px 20px;border-bottom:1px solid var(--rule)}
.flow li:last-child{border-bottom:none}
.flow .fn{grid-row:span 2;width:32px;height:32px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:14px;display:flex;align-items:center;justify-content:center}
.flow .ft{font-weight:600;font-size:15.5px}
.flow .fd{font-size:14px;color:var(--ink-2)}
.tabpanel{display:none}
.tabpanel.on{display:block}
.dlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin-top:22px}
.ditem{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--rule);border-radius:12px;padding:14px 16px;box-shadow:var(--shadow);text-decoration:none;color:var(--ink);min-width:0}
a.ditem:hover{border-color:var(--accent)}
.ditem .di{flex:none;width:42px;height:42px;border-radius:10px;background:#F4F6FA;border:1px solid var(--rule);display:flex;align-items:center;justify-content:center;font-family:'IBM Plex Mono',monospace;font-size:10.5px;font-weight:600;color:var(--ink-2)}
.ditem .dt{flex:1;min-width:0}
.ditem .dn{display:block;font-weight:600;font-size:15px}
.ditem .dm{display:block;font-size:13px;color:var(--ink-3);margin-top:1px}
.ditem .dk{flex:none;font-family:'IBM Plex Mono',monospace;font-size:11.5px;font-weight:600;color:var(--accent);border:1px solid var(--accent);border-radius:6px;padding:3px 7px}
.ro-cell .s{font-size:12.5px;color:var(--ink-3);margin-top:2px}
.ro-grid.c4{border:1px solid var(--rule);border-radius:12px;overflow:hidden;box-shadow:var(--shadow);margin-top:28px}
@media(max-width:1000px) and (min-width:761px){.ro-grid.c4{grid-template-columns:repeat(3,1fr)}}
/* legacy diagram colours mapped onto this palette */
.lg{--panel:#FFFFFF;--panel2:#F4F6FA;--black2:#F7F9FC;--border:#C3CBD9;--border2:#C3CBD9;--text:#0A1E3F;--text2:#3B4A63;--text3:#6C7A90;
  --orange:#F07200;--orange2:#D96700;--orange3:#B85700;--oranged:#FFF1E2;--orangeg:#FFF7EE;--accent:#F07200;--link:#F07200;--nav-accent:#F07200;
  --cyan:#2B5BA8;--blue:#2B5BA8;--gold:#8A6D1F;--red:#C0392B;--green:#1E7F5C;--glow:transparent}

/* ── AI DATACENTER PAGES (src/pages/ai-*.src.html, behaviour in rc-ai.js) */
html:has(body[data-ai]){scroll-padding-top:150px}
/* AI Datacenter header: nine pages in the menu — tighter spacing, and the menu button from 1220px down */
body[data-ai] .bar nav{gap:16px;flex-wrap:nowrap}
body[data-ai] .bar nav a{font-size:14px;white-space:nowrap}
@media(max-width:1220px) and (min-width:961px){
  body[data-ai] .bar{position:relative;gap:10px}
  body[data-ai] .langsw{order:2;margin-left:auto;margin-right:0}
  body[data-ai] .burger{order:3;display:flex}
  body[data-ai] .bar nav{display:none;position:absolute;left:0;right:0;top:100%;margin:0;background:#fff;border-bottom:1px solid var(--rule);box-shadow:0 12px 28px rgba(10,30,63,.1);padding:6px 0}
  body[data-ai] .bar nav.open{display:block}
  body[data-ai] .bar nav a{display:block;padding:13px 16px;font-size:16px;border-bottom:none}
  body[data-ai] .bar nav a:hover{background:#F1F5FB;border-bottom-color:transparent}
}
.ai-hero h1{max-width:20ch}
.ai-hero .hero-copy{max-width:920px}
.ai-hero .hero-top .hero-copy{max-width:none}
.aisub{position:sticky;top:60px;z-index:55;background:rgba(251,251,252,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule)}
.suite + header.site ~ main .aisub{top:94px}
.aisub .wrap{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-top:10px;padding-bottom:10px}
.aisub .wrap::-webkit-scrollbar{display:none}
.aisub .chip{white-space:nowrap;text-decoration:none}
.aisub .chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
@media(max-width:960px){.suite + header.site ~ main .aisub{top:92px}}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:center;margin-top:8px}
.split.rev > :first-child{order:2}
@media(max-width:900px){.split{grid-template-columns:1fr;gap:26px}.split.rev > :first-child{order:0}}
.split h3{font-size:19px;margin:0 0 12px}
.split .ticks{margin-top:18px}
.split .btn{margin-top:22px}
.splitvis{margin:0;border-radius:14px;overflow:hidden;border:1px solid var(--rule);background:#fff;box-shadow:var(--shadow)}
.splitvis img{display:block;width:100%;height:auto}
.hstats.ai{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:40px;border:1px solid var(--rule);border-radius:12px;background:#fff;box-shadow:var(--shadow);overflow:hidden}
.hstats.ai > div{padding:18px 22px;border-right:1px solid var(--rule);min-width:0}
.hstats.ai > div:last-child{border-right:none}
.hstats.ai .n{font-size:28px;color:var(--ink)}
@media(max-width:760px){.hstats.ai{grid-template-columns:1fr 1fr}.hstats.ai > div:nth-child(2){border-right:none}.hstats.ai > div:nth-child(-n+2){border-bottom:1px solid var(--rule)}}
.ai-hero + .hstats.ai{margin:0 auto 0}
.cards.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1100px){.cards.c4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.cards.c4{grid-template-columns:1fr}}
.card .pills{margin-top:auto;padding-top:14px}
.card .lbtn.more{align-self:flex-start;margin-top:14px}
.card .pills + .lbtn.more{margin-top:12px}
.card .btn{align-self:flex-start;margin-top:14px}
.pill.ok{border-color:#B8DCCB;background:#EAF5F0;color:var(--ok)}
.tag.acc{background:var(--accent-soft);color:#B85700}
.em{color:var(--ink);font-weight:600}
h2 .em,h1 .em{color:var(--accent)}
.lead strong,.sub strong{color:var(--ink)}
.ref{box-shadow:var(--shadow);margin-top:22px}
.ref td.mono{font-family:'IBM Plex Mono',monospace;font-size:13.5px;color:var(--ink)}
.ref th{white-space:nowrap}
.ref td{white-space:normal;vertical-align:top}
.ref td .pill{margin:0 4px 4px 0;display:inline-block}
section h3{margin-top:34px}
section .wrap > h3:first-child{margin-top:0}
.tagline{margin-top:44px;padding:30px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);text-align:center}
.tagline p{margin:0;font-size:clamp(20px,2.6vw,30px);font-weight:700;letter-spacing:-.01em;color:var(--ink)}
.tagline p .em{color:var(--accent)}
.contact .eyebrow{color:#FFB46B}
.contact h2 .em{color:#FFB46B}
/* air cooling: IC detail */
.ictabs{margin:26px 0 18px}
.ictabs .chip{font-family:'IBM Plex Mono',monospace;font-weight:600}
.icpanel{display:none;background:#fff;border:1px solid var(--rule);border-radius:14px;box-shadow:var(--shadow);padding:26px 26px 24px}
.icpanel.on{display:block}
.ichd{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:30px;align-items:start}
@media(max-width:900px){.ichd{grid-template-columns:1fr}.icpanel{padding:18px 16px}}
.ichd h2{font-size:clamp(22px,2.6vw,30px)}
.ichd h2 .tag{font-size:12px;vertical-align:middle;margin-left:6px}
.ichd .lead{font-size:16px}
.dsbtn{margin-top:6px}
.dsbtn .rev{font-family:'IBM Plex Mono',monospace;font-size:11.5px;font-weight:500;opacity:.85;margin-left:6px}
.pinout{margin:0}
.pinbtn{display:block;width:100%;padding:10px;border:1px solid var(--rule);border-radius:12px;background:#fff;cursor:zoom-in}
.pinbtn:hover{border-color:var(--accent)}
.pinbtn img{display:block;width:100%;height:auto}
.subtabs{margin:22px 0 14px}
.subtabs .chip{font-size:13px}
.subpanel{display:none}
.subpanel.on{display:block}
.featgrid > *{max-width:860px}
.featgrid .ref{margin-top:0}
.featgrid .card{margin-top:18px}
.featgrid h3{font-size:17px;margin:0 0 6px}
.fig.diag{padding:10px;background:#fff}
.fig.diag svg{min-width:720px}
.pinzoom .pzmodal{max-width:860px;padding:22px}
.pinzoom img{display:block;width:100%;height:auto}
/* power: voltage coverage bar */
.vbar-wrap{margin-top:26px;background:#fff;border:1px solid var(--rule);border-radius:14px;padding:20px 22px;box-shadow:var(--shadow)}
.vbar-label{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--ink-3);margin-bottom:12px}
.vbar-track{display:flex;border-radius:8px;overflow:hidden}
.vbar-seg{flex:1;padding:12px 10px;font-size:13px;font-weight:600;color:#fff;text-align:center}
.vs-amber{background:#F07200}.vs-blue{background:#2B5BA8}.vs-purple{background:#0A1E3F}
.vbar-ticks{display:flex;justify-content:space-between;font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--ink-3);margin-top:6px}
.vbar-legend{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:12px;font-size:13px;color:var(--ink-2)}
.vl-item{display:flex;align-items:center;gap:8px}
.vl-dot{width:10px;height:10px;border-radius:3px;background:var(--rule-strong)}
.vl-item:nth-child(1) .vl-dot{background:#F07200}.vl-item:nth-child(2) .vl-dot{background:#2B5BA8}.vl-item:nth-child(3) .vl-dot{background:#0A1E3F}
@media(max-width:600px){.vbar-seg{font-size:11px;padding:10px 4px}}
.ms-frame{margin-top:24px;border:1px solid var(--rule);border-radius:14px;overflow:hidden;background:#fff;box-shadow:var(--shadow)}
.ms-iframe{display:block;width:100%;height:760px;border:0}
.ms-features{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px}
.ms-chip{font-size:12.5px;padding:4px 10px;border-radius:6px;border:1px solid var(--rule-strong);background:#fff;color:var(--ink-2)}
.ms-foot{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin-top:14px;font-size:13px;color:var(--ink-3)}
/* hv: sortable SBD family */
.sbd{margin-top:44px}
.sortable th.sort{cursor:pointer;user-select:none}
.sortable th.sort:after{content:' ↕';color:var(--ink-3);font-size:11px}
.sortable th[aria-sort="ascending"]:after{content:' ↑';color:var(--accent)}
.sortable th[aria-sort="descending"]:after{content:' ↓';color:var(--accent)}
.sortable td{font-family:'IBM Plex Mono',monospace;font-size:13.5px}
.rowbtn.dl{display:inline-flex;text-decoration:none;color:var(--accent);border-color:var(--accent)}
.rowbtn.dl:hover{background:var(--accent);color:#fff}
/* request forms */
.aimodal .modal header p{margin-top:4px;font-size:13.5px}
.aimodal .modal .body{display:flex;flex-direction:column;gap:14px;padding-bottom:18px}
.aimodal .fgrid{gap:14px 16px}
.aimodal .formstatus{flex-basis:100%;font-size:12.5px;color:var(--ink-3)}
.aimodal .formstatus.bad{color:#C0392B}
/* site map */
.aimap{border-top:1px solid var(--rule);background:#fff;padding:40px 0 26px}
.aimap-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
@media(max-width:800px){.aimap-grid{grid-template-columns:1fr 1fr}}
.aimap h4{margin:0 0 10px;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.aimap ul{list-style:none;margin:0;padding:0}
.aimap li{padding:4px 0}
.aimap a{color:var(--ink-2);text-decoration:none;font-size:14.5px}
.aimap a:hover{color:var(--accent)}
.aimap-foot{display:flex;flex-wrap:wrap;gap:10px 24px;justify-content:space-between;margin-top:26px;padding-top:16px;border-top:1px solid var(--rule);font-size:13px;color:var(--ink-3)}
.aimap-foot .soc{display:flex;gap:16px}
.aimap-foot .soc a{font-size:13px;font-weight:600}
/* AI home: ecosystem diagram */
.eco{width:100%;max-width:600px;height:auto;display:block;margin:0 auto}
.eco .eco-n rect{fill:#fff;stroke:var(--rule-strong);stroke-width:1.2;transition:fill .15s,stroke .15s}
.eco .eco-n:hover rect{fill:var(--accent-soft);stroke:var(--accent)}
.eco .eco-n text{pointer-events:none}
.eco .eco-l{font-family:'Archivo',sans-serif;font-size:15px;font-weight:700;letter-spacing:-.01em;fill:var(--ink)}
.eco .eco-s{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.02em;fill:var(--ink-3)}
.eco .eco-k{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.2em;fill:#FFB46B;font-weight:600}
.eco .eco-c{font-family:'Archivo',sans-serif;font-size:16px;font-weight:700;fill:#fff}
.eco .ln.flow{stroke:var(--accent);stroke-width:1.4;opacity:.75}
.eco .ln.flow{fill:none;stroke-dasharray:5 7;animation:dash 1.8s linear infinite}
.shead{margin-bottom:6px}
.wrap > * + .shead,.wrap > .cards + .cards,.wrap > .cards + .feats,.wrap > .feats + .cards{margin-top:44px}
.shead h3{margin-top:4px}
.feats{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin-top:24px}
.feats.cards{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:900px){.feats.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
.feat{background:#fff;border:1px solid var(--rule);border-radius:10px;padding:14px 16px;box-shadow:var(--shadow)}
.feat .ft{font-weight:700;font-size:15px;color:var(--ink)}
.feat .fd{font-size:13.5px;color:var(--ink-3);margin-top:2px}
.tagline .feats{margin-top:20px}
.tagline .feat{text-align:center;box-shadow:none}
.visbox{margin:0;background:#fff;border:1px solid var(--rule);border-radius:14px;box-shadow:var(--shadow);padding:36px 30px;text-align:center}
.visbox .vt{font-size:26px;font-weight:700;letter-spacing:-.02em;color:var(--ink)}
.visbox .vs{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-top:6px}
.visbox .vg{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:26px auto 0;max-width:380px}
.visbox .vi{padding:14px 10px;border-radius:10px;background:var(--new-bg);color:var(--new);font-weight:700;font-size:15px}
.card .meta:last-child{font-size:14px;color:var(--ink);font-weight:600}
.shead > p{color:var(--ink-2);max-width:70ch;margin-top:12px;font-size:16.5px}


/* AI air cooling: animated data-center figure */
.splitvis.dc{background:#fff;padding:10px}
.dcair{display:block;width:100%;height:auto}
.dcair .ceil{fill:#FFF1E2;stroke:#FFD9B0}
.dcair .floor{fill:#E9F0FB;stroke:#B9CCEB}
.dcair .rack{fill:#EEF1F6;stroke:#C3CBD9}
.dcair .srv{fill:#fff;stroke:#C3CBD9}
.dcair .led{fill:#1E7F5C}
.dcair .fanring{fill:#F4F6FA;stroke:#0A1E3F;stroke-width:1.2}
.dcair .fan path{fill:#0A1E3F}
.dcair .fan{animation:dcspin .45s linear infinite}
.dcair .hub{fill:#F07200}
.dcair .flow{fill:none;stroke-width:2;stroke-linecap:round;stroke-dasharray:7 7;animation:dcflow 1.1s linear infinite}
.dcair .flow.c{stroke:#2B5BA8;opacity:.8}
.dcair .flow.h{stroke:#F07200;opacity:.85}
.dcair .flow.t{stroke-width:1.6;opacity:.7;stroke-dasharray:4 6;animation-duration:.8s}
.dcair text{font-family:'Archivo',sans-serif}
.dcair .lab{font-size:12px;font-weight:600;fill:#3B4A63}
.dcair .lab.hot{fill:#B85700}.dcair .lab.cold{fill:#2B5BA8}
.dcair .aisle{font-size:14px;font-weight:700;paint-order:stroke;stroke:#F7F9FC;stroke-width:5px;stroke-linejoin:round}
.dcair .aisle.cold{fill:#2B5BA8}.dcair .aisle.hot{fill:#B85700}
.dcair .sub{paint-order:stroke;stroke:#F7F9FC;stroke-width:4px;stroke-linejoin:round;font-family:'IBM Plex Mono',monospace;font-size:10px;fill:#6C7A90}
.dcair .lead{fill:none;stroke:#6C7A90;stroke-width:1;stroke-dasharray:2 3}
@keyframes dcflow{to{stroke-dashoffset:-28}}
@keyframes dcspin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion: reduce){.dcair .fan,.dcair .flow{animation:none}}

/* AI Datacenter: animated overview diagrams (SiC front end, LV MOSFET power tree) */
.aifig{padding:12px 12px 4px}
.aifig .aitip{font-size:13.5px;color:var(--ink-2);padding:8px 4px 6px;min-height:3.2em;line-height:1.5}
.aidiag text{font-size:8.5px}
.aidiag .q{--c:var(--accent)}
.aidiag .t1{--c:#F07200}.aidiag .t2{--c:#2B5BA8}.aidiag .t3{--c:#0A1E3F}
.aidiag .q rect{fill:#fff;stroke:var(--c);stroke-width:1.1}
.aidiag .q text{font-size:7.5px;font-weight:600;fill:var(--ink-2);letter-spacing:.02em}
.aidiag .q.pa rect,.aidiag .q.pb rect,.aidiag .q.ph rect{animation:aisw var(--p,.8s) steps(1,end) infinite}
.aidiag .q.pa text,.aidiag .q.pb text,.aidiag .q.ph text{animation:aiswt var(--p,.8s) steps(1,end) infinite}
.aidiag .q.pb rect,.aidiag .q.pb text{animation-delay:calc(var(--p,.8s) / -2)}
.aidiag .q.ph rect,.aidiag .q.ph text{animation-name:aiph;animation-delay:var(--d,0s)}
.aidiag .q.ph text{animation-name:aipht}
.aidiag .q.on rect{fill:var(--c)}
.aidiag .q.on text{fill:#fff}
@keyframes aisw{0%{fill:var(--c)}50%{fill:#fff}}
@keyframes aiswt{0%{fill:#fff}50%{fill:var(--ink-2)}}
@keyframes aiph{0%{fill:var(--c)}17%{fill:#fff}}
@keyframes aipht{0%{fill:#fff}17%{fill:var(--ink-2)}}
.aidiag .sbd path{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1.2;stroke-linejoin:round}
.aidiag .sbd path:first-child{animation:aisbd var(--p,.5s) steps(1,end) infinite;animation-delay:calc(var(--p,.5s) / -2)}
@keyframes aisbd{0%{fill:var(--accent)}50%{fill:var(--accent-soft)}}
.aidiag .coil{fill:none;stroke:var(--ink-2);stroke-width:1.1}
.aidiag .core{stroke:var(--ink-3);stroke-width:.9}
.aidiag .dash2{stroke-dasharray:3 4}
.aidiag .plain.lv{stroke:var(--ink-3);stroke-dasharray:3 3}
.aidiag .tier{fill:#EEF3FB;stroke:#2B5BA8;stroke-width:1.1}
.aidiag .lgq{fill:var(--accent)}
.aidiag .lgd{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1.1}
.aidiag .sw.t1{fill:#F07200}.aidiag .sw.t2{fill:#2B5BA8}.aidiag .sw.t3{fill:#0A1E3F}
.aidiag .lgl:hover text{fill:var(--accent)}
.aidiag .load{fill:var(--accent);transform-box:fill-box;transform-origin:left center;animation:aiload 2.4s ease-in-out infinite}
@keyframes aiload{0%,100%{transform:scaleX(.35)}45%,60%{transform:scaleX(1)}}
.aidiag .rotor{transform-box:fill-box;transform-origin:center;animation:dcspin 1.4s linear infinite}
.aidiag .rotor circle{fill:#fff;stroke:var(--ink-2);stroke-width:1.1}
.aidiag .rotor path{stroke:var(--accent);stroke-width:1.6;stroke-linecap:round}
.aidiag .hz{cursor:pointer;outline:none}
.aidiag .hz .zone{fill:transparent;stroke:transparent;stroke-width:1.4;transition:fill .15s,stroke .15s}
.aidiag .hz:hover .zone,.aidiag .hz:focus .zone,.aidiag .hz.cur .zone{fill:rgba(240,114,0,.06);stroke:var(--accent)}
.aidiag .hz.hot .zone{fill:rgba(240,114,0,.09);stroke:var(--accent);stroke-width:2}
.aidiag .hz.dim{opacity:.5}
.aidiag g.hz:focus-visible .zone{stroke:var(--accent)}
@media(prefers-reduced-motion:reduce){.aidiag *{animation:none!important}}

/* ── part pages (parts/<part>.html, tools/parts.py) ─────────────────── */
.crumbs{font-size:13.5px;color:var(--ink-3);margin-bottom:18px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.crumbs a{color:var(--ink-2);text-decoration:none}.crumbs a:hover{color:var(--accent)}
.crumbs .sep{color:var(--rule-strong)}
.pp-hero h1{font-size:clamp(40px,6vw,64px);letter-spacing:-.02em;display:flex;flex-wrap:wrap;align-items:center;gap:14px;max-width:none}
.pp-hero h1 .tag,.pp-hero h1 .drv{font-size:13px;letter-spacing:0;vertical-align:middle}
.pp-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.pp-cta .btn.on{border-color:var(--ok);color:var(--ok)}
.pp-sec{padding:48px 0}
.pp-sec h2{font-size:clamp(22px,2.6vw,30px);margin:0 0 18px}
.pp-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px}
@media (max-width:820px){.pp-grid{grid-template-columns:1fr;gap:28px}}
.pp-kv{background:#fff;border:1px solid var(--rule);border-radius:12px;padding:6px 18px;box-shadow:var(--shadow)}
.pp-kv div{font-size:15px;padding:10px 0}
.pp-kv dd{margin:0;text-align:right;font-weight:600;font-variant-numeric:tabular-nums}
.pp-feat{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.pp-feat li{position:relative;padding:12px 14px 12px 38px;background:#fff;border:1px solid var(--rule);border-radius:10px;font-size:15px}
.pp-feat li:before{content:"";position:absolute;left:15px;top:19px;width:9px;height:9px;border-radius:50%;background:var(--accent)}
.pp-note{margin-top:18px;padding:14px 16px;border-radius:10px;background:var(--accent-soft);color:var(--ink);font-size:14.5px;border:1px solid #F6D2AE}
.pp-note a{color:#B85700}
.pp-tbl{width:100%;border-collapse:collapse;font-size:14px;min-width:560px}
.pp-tbl th,.pp-tbl td{padding:9px 12px;border-bottom:1px solid #EEF1F6;text-align:left;vertical-align:top}
.pp-tbl thead th{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-weight:600;background:#F6F8FB}
.pp-tbl tbody th{font-weight:500;color:var(--ink-2)}
.pp-tbl td.n{font-variant-numeric:tabular-nums;font-weight:600}
.pp-tbl tr.grp td{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-weight:600;padding-top:16px;border-bottom:none}
.pp-tblwrap{border:1px solid var(--rule);border-radius:12px;background:#fff;overflow:auto;box-shadow:var(--shadow)}
.pp-refs{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.pp-ref{background:#fff;border:1px solid var(--rule);border-radius:12px;padding:16px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:6px}
.pp-ref .rid{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--accent);font-weight:600;letter-spacing:.06em}
.pp-ref h3{font-size:16.5px;margin:0}
.pp-ref p{margin:0;color:var(--ink-2);font-size:14px}
.pp-ref .files{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:6px;font-size:13.5px}
.pp-ref .files a{color:#B85700;text-decoration:none}.pp-ref .files a:hover{text-decoration:underline}
.pp-faq{display:grid;gap:10px;margin:0}
.pp-faq div{background:#fff;border:1px solid var(--rule);border-radius:10px;padding:14px 16px}
.pp-faq dt{font-weight:600;margin-bottom:4px}
.pp-faq dd{margin:0;color:var(--ink-2);font-size:15px}
.pp-rel{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.pp-rel a{display:block;background:#fff;border:1px solid var(--rule);border-radius:10px;padding:12px 14px;text-decoration:none;color:var(--ink)}
.pp-rel a:hover{border-color:var(--accent)}
.pp-rel .pn{font-weight:700}.pp-rel .d{display:block;font-size:13px;color:var(--ink-3);margin-top:2px}
a.lc-pn{text-decoration:none}a.lc-pn:hover{color:var(--accent)}
.pp-tblwrap{max-width:760px}
