/* openaiapialternative.com - PCB / component datasheet */
:root{
  --mask:#6b0f50;--mask2:#5a0a43;--paper:#fcf6fa;--ink:#26081c;--mut:#67475c;--line:#e3cfdc;
  --pri:#a50f78;--gold:#e8c15a;--gold2:#b98a1f;--ic:#1f0718;--ic2:#33102a;--ict:#f6e6f0;--icm:#dcbfd1;
  --silk:rgba(255,255,255,.78);--focus:#e8c15a;
  --disp:"Bai Jamjuree",ui-sans-serif,system-ui,sans-serif;--text:Inter,ui-sans-serif,system-ui,sans-serif;
  --mono:"Oxygen Mono",ui-monospace,Menlo,Consolas,monospace;
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:96px}
body{margin:0;background-color:var(--mask);color:var(--paper);font:400 16.5px/1.65 var(--text);overflow-x:clip;
  background-image:radial-gradient(circle,rgba(255,255,255,.16) 1.4px,transparent 2px),radial-gradient(circle,rgba(40,0,28,.5) 3.4px,transparent 4px),
  linear-gradient(rgba(40,0,28,.16) 1px,transparent 1px);
  background-size:28px 28px,28px 28px,100% 140px;background-position:0 0,0 0,0 0}
h1,h2,h3{font-family:var(--disp);line-height:1.12;margin:0;letter-spacing:-.01em;overflow-wrap:break-word}
p{margin:0 0 1em}
a{color:inherit}
img,svg{max-width:100%}
code,pre,kbd,output{font-family:var(--mono)}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:4px}
.card:not(.dark),.bar,.form{--focus:#26081c}
.skip{position:absolute;left:12px;top:-80px;z-index:99;background:var(--gold);color:var(--ink);padding:12px 18px;border-radius:6px;font-weight:600}
.skip:focus{top:12px}

/* header: edge connector pill */
.top{position:sticky;top:0;z-index:50;padding:12px 14px 16px}
.bar{position:relative;max-width:1040px;margin:0 auto;display:flex;align-items:center;gap:10px;background:var(--paper);color:var(--ink);
  border-radius:999px;padding:7px 8px 7px 14px;box-shadow:0 0 0 1.5px var(--ink),0 14px 30px -14px rgba(20,0,14,.75)}
.bar::after{content:"";position:absolute;left:15%;right:15%;top:100%;height:9px;border-radius:0 0 3px 3px;
  background:repeating-linear-gradient(90deg,var(--gold) 0 9px,transparent 9px 15px);filter:drop-shadow(0 1px 0 var(--gold2))}
.logo{display:flex;align-items:center;gap:9px;min-width:0;text-decoration:none;font:700 16px/1.1 var(--disp);color:inherit;min-height:44px}
.logo .mark{flex:none}
.logo span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav{display:flex;gap:2px;margin-left:auto}
.nav a{display:flex;align-items:center;min-height:44px;padding:0 15px;border-radius:999px;text-decoration:none;font:600 15px var(--disp);color:var(--ink)}
.nav a:hover{background:#f1dfea}
.nav a[aria-current]{background:var(--ink);color:var(--paper)}
.burger{display:none;flex:none;width:44px;height:44px;border:0;border-radius:50%;background:var(--ink);cursor:pointer;position:relative}
.burger span,.burger span::before,.burger span::after{content:"";position:absolute;left:13px;width:18px;height:2px;background:var(--gold);border-radius:2px}
.burger span{top:21px}.burger span::before{left:0;top:-6px}.burger span::after{left:0;top:6px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 24px;border:0;border-radius:7px;cursor:pointer;
  background:var(--pri);color:#fff;font:700 16px/1.2 var(--disp);text-decoration:none;text-align:center;transition:transform .12s,box-shadow .12s;
  box-shadow:0 4px 0 #5e0744}
.btn::before{content:"";width:10px;height:10px;flex:none;border-radius:50%;border:3px solid var(--gold);background:var(--ic)}
.btn:hover{transform:translateY(-1px);box-shadow:0 5px 0 #5e0744}
.btn:active{transform:translateY(3px);box-shadow:0 1px 0 #5e0744}
.btn.sm{min-height:44px;padding:0 16px;font-size:14.5px;box-shadow:0 3px 0 #5e0744}
.btn.sm::before{width:8px;height:8px;border-width:2px}
.btn.ghost{background:transparent;color:inherit;box-shadow:inset 0 0 0 1.5px currentColor}
.btn.ghost::before{display:none}
.btn.ghost:hover{box-shadow:inset 0 0 0 2.5px currentColor}
.mask .btn:not(.ghost),.dark .btn:not(.ghost){background:var(--gold);color:var(--ink);box-shadow:0 4px 0 var(--gold2)}
.mask .btn:not(.ghost)::before,.dark .btn:not(.ghost)::before{border-color:var(--ink);background:var(--paper)}
.bar .key{flex:none;border-radius:999px;margin-left:6px}
.acts{display:flex;flex-wrap:wrap;gap:12px;margin:0}

/* canvas */
main{max-width:1200px;margin:0 auto;padding:22px 22px 0;counter-reset:sec}
main>*{min-width:0}
.mask{color:var(--paper)}
.card{position:relative;background:var(--paper);color:var(--ink);border-radius:8px;padding:38px 40px;outline:1.5px solid var(--silk);outline-offset:7px;min-width:0}
.card::after{content:"";position:absolute;left:-8.5px;top:-8.5px;width:17px;height:17px;border-radius:9px 0 0 0;
  background:linear-gradient(135deg,#fff 50%,transparent 50%);pointer-events:none}
.card.dark{background:var(--ic);color:var(--ict);background-image:linear-gradient(180deg,var(--ic2),var(--ic) 90px)}
.card h2{font-size:clamp(25px,2.6vw,34px);font-weight:700;margin-bottom:22px}
.notch{position:absolute;left:50%;top:0;width:44px;height:22px;margin-left:-22px;border-radius:0 0 22px 22px;background:var(--mask);box-shadow:inset 0 -1.5px 0 var(--silk)}
.via{display:inline-block;width:12px;height:12px;flex:none;border-radius:50%;border:3px solid var(--gold);background:var(--ic);vertical-align:-1px}

/* numbered sections on the trace */
.sec{margin-top:60px;counter-increment:sec}
.pad{position:absolute;left:26px;top:-17px;z-index:2;width:34px;height:34px;border-radius:50%;background:var(--gold);color:var(--ink);
  display:grid;place-items:center;font:400 14px/1 var(--mono);box-shadow:0 0 0 3px var(--mask),0 0 0 4.5px var(--gold)}
.pad::before{content:counter(sec)}
main>.sec:first-of-type .pad,.sec.sq .pad{border-radius:5px}
.duo .pad{display:none}
@media(min-width:960px){
  main>.sec{margin-left:84px}
  main>.sec.off-l{margin-right:108px}
  main>.sec::before{content:"";position:absolute;left:-84px;top:-67px;bottom:-7px;width:44px;pointer-events:none;background:
    linear-gradient(var(--gold),var(--gold)) 8px 0/4px 46px no-repeat,
    linear-gradient(to top right,transparent calc(50% - 2px),var(--gold) calc(50% - 1.4px),var(--gold) calc(50% + 1.4px),transparent calc(50% + 2px)) 10px 44px/20px 20px no-repeat,
    linear-gradient(var(--gold),var(--gold)) 28px 62px/4px calc(100% - 124px) no-repeat,
    linear-gradient(to top left,transparent calc(50% - 2px),var(--gold) calc(50% - 1.4px),var(--gold) calc(50% + 1.4px),transparent calc(50% + 2px)) 10px calc(100% - 44px)/20px 20px no-repeat,
    linear-gradient(var(--gold),var(--gold)) 8px 100%/4px 46px no-repeat}
  main>.sec>.pad{left:-71px;top:52px}
  main>.sec>.pad::after{content:"";position:absolute;left:100%;top:50%;width:37px;height:4px;margin-top:-2px;background:var(--gold);z-index:-1}
}

/* dimension line */
.dim{display:flex;align-items:center;gap:12px;margin:0 0 18px;font:400 12.5px/1.3 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}
.dim i{flex:1;min-width:18px;height:11px;background:linear-gradient(currentColor,currentColor) 0 50%/100% 1.5px no-repeat;border-left:1.5px solid}
.dim i:last-child{border-left:0;border-right:1.5px solid}
.dim i:first-child{flex:0 0 28px}
.head .dim{margin:18px 0}

/* hero */
.hero{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);gap:54px;align-items:center;padding:34px 0 10px}
.hero-main{min-width:0}
h1{font-size:clamp(34px,4.7vw,62px);font-weight:700;letter-spacing:-.025em;text-wrap:balance}
.lead{font-size:clamp(17px,1.5vw,20px);line-height:1.55;margin:20px 0 0;max-width:62ch;color:#f6e3ef}
.vias{list-style:none;margin:24px 0 28px;padding:0;display:grid;gap:10px}
.vias li{position:relative;padding-left:30px}
.vias li::before{content:"";position:absolute;left:0;top:.38em;width:14px;height:14px;border-radius:50%;border:3.5px solid var(--gold);background:var(--ic)}
.vias.big{margin:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 38px;font-size:17px}
.hero-code{padding:34px 22px 20px}
.lbl{font:400 12.5px/1 var(--mono)!important;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin:0 4px 14px!important}
.endp{display:flex;align-items:center;gap:10px;margin:16px 4px 0;font-size:13.5px;color:var(--icm);min-width:0}
.endp code{overflow-wrap:anywhere;min-width:0}

/* code */
.codebox{min-width:0}
.codetabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.codetabs button{min-height:44px;padding:0 16px;border:1.5px solid #5d2c4e;border-radius:6px;background:transparent;color:var(--icm);font:400 13.5px var(--mono);cursor:pointer}
.codetabs button[aria-selected=true]{background:var(--gold);border-color:var(--gold);color:var(--ink)}
pre.code{position:relative;margin:0 0 1.3em;padding:16px 18px 18px;border-radius:7px;background:#16040f;color:#f6e6f0;border:1px solid #4a1b3c;
  font:400 13.5px/1.7 var(--mono);overflow-x:auto;max-width:100%;tab-size:2;-webkit-overflow-scrolling:touch;box-shadow:inset 6px 0 0 -3px var(--gold)}
.codebox pre.code{margin:0}
pre.code code{font:inherit;background:none;padding:0;color:inherit;white-space:pre}
pre.code .k{color:#f3cf72}pre.code .s{color:#ff9fdc}pre.code .c{color:#bfa0b3;font-style:italic}
.copy{display:block;width:fit-content;margin:-6px -8px 8px auto;min-height:36px;min-width:64px;padding:0 12px;border:1.5px solid var(--gold);border-radius:5px;
  background:#16040f;color:var(--gold);font:400 12.5px var(--mono);cursor:pointer}
.copy:hover{background:var(--gold);color:var(--ink)}

/* pinout */
.pinout{display:grid;grid-template-columns:minmax(0,1fr) 250px minmax(0,1fr);margin:46px 0 14px;align-items:stretch}
.pins{list-style:none;margin:0;padding:14px 0;display:grid;grid-auto-rows:1fr;min-width:0}
.pins li{display:flex;align-items:center;min-height:74px;min-width:0}
.pins.r li{flex-direction:row-reverse}
.pt{display:block;text-align:right;min-width:0;max-width:62%;padding:0 12px}
.pins.r .pt{text-align:left}
.pt b{display:block;font:700 26px/1.1 var(--disp);color:var(--gold)}
.pt span{display:block;font-size:13.5px;line-height:1.35;color:#f3dcea;overflow-wrap:anywhere}
.tr{position:relative;flex:1;min-width:34px;height:24px;background:
  linear-gradient(var(--gold),var(--gold)) 0 2px/calc(50% - 8px) 3px no-repeat,
  linear-gradient(to top right,transparent calc(50% - 1.6px),var(--gold) calc(50% - 1.1px),var(--gold) calc(50% + 1.1px),transparent calc(50% + 1.6px)) calc(50% + 0px) 3px/18px 18px no-repeat,
  linear-gradient(var(--gold),var(--gold)) 100% 19px/calc(50% - 8px) 3px no-repeat}
.tr::before{content:"";position:absolute;left:-6px;top:-3px;width:13px;height:13px;border-radius:50%;border:3px solid var(--gold);background:var(--ic)}
.pins.r .tr{transform:scaleX(-1)}
.leg{flex:none;width:38px;height:24px;margin-top:17px;display:grid;place-items:center;background:var(--gold);color:var(--ink);font:400 13px/1 var(--mono);border-radius:3px 0 0 3px}
.pins.r .leg{border-radius:0 3px 3px 0}
.chip{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-width:0;padding:34px 14px 20px;border-radius:8px;
  background:linear-gradient(180deg,var(--ic2),var(--ic) 110px);color:var(--ict);outline:1.5px solid var(--silk);outline-offset:-9px;text-align:center}
.chip b{font:700 27px/1 var(--disp);letter-spacing:.02em}
.chip>span:last-child{font:400 11.5px/1.4 var(--mono);color:var(--icm);overflow-wrap:anywhere;max-width:100%}
.chip .dot{position:absolute;left:22px;top:24px;width:11px;height:11px;border-radius:50%;background:var(--gold)}

/* lists inside cards */
.parts,.chain,.uses{list-style:none;margin:0;padding:0;display:grid;min-width:0}
.parts{grid-template-columns:repeat(3,minmax(0,1fr));counter-reset:p;border-top:2px solid var(--ink)}
.parts li{counter-increment:p;position:relative;padding:22px 22px 8px 0;border-bottom:1px solid var(--line);min-width:0}
.parts li+li{padding-left:0}
.parts li::before{content:counter(p,decimal-leading-zero);display:inline-grid;place-items:center;min-width:34px;height:22px;margin-bottom:12px;padding:0 6px;border-radius:3px;
  background:var(--gold);color:var(--ink);font:400 12.5px/1 var(--mono)}
.parts h3,.parts h2{font-size:19.5px;font-weight:700;margin:0 0 8px}
.parts p{font-size:15.5px;line-height:1.6;color:var(--mut);margin:0 0 14px}
.parts.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.dark .parts{border-top-color:var(--gold)}.dark .parts li{border-bottom-color:#4a1b3c}.dark .parts p{color:var(--icm)}

.chain{grid-template-columns:repeat(3,minmax(0,1fr));gap:34px;counter-reset:s}
.chain li{counter-increment:s;position:relative;padding-top:58px;min-width:0}
.chain li::before{content:counter(s);position:absolute;left:0;top:0;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--gold);color:var(--ink);
  font:400 15px/1 var(--mono);box-shadow:0 0 0 3px var(--ic),0 0 0 4.5px var(--gold);z-index:1}
.chain li:first-child::before{border-radius:5px}
.chain li::after{content:"";position:absolute;left:46px;right:-34px;top:17px;height:4px;background:var(--gold)}
.chain li:last-child::after{right:auto;width:50%;background:linear-gradient(90deg,var(--gold) 0 calc(100% - 14px),transparent 0);}
.chain h3,.chain h2{font-size:21px;font-weight:700;margin:0 0 8px}
.chain p{font-size:15.5px;line-height:1.6;color:var(--icm);margin:0}
.card:not(.dark) .chain p{color:var(--mut)}
.card:not(.dark) .chain li::before{box-shadow:0 0 0 3px var(--paper),0 0 0 4.5px var(--gold2)}

.split{display:grid;grid-template-columns:minmax(0,.42fr) minmax(0,1fr);gap:40px;align-items:start}
.split h2{position:sticky;top:110px}
.uses{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 34px}
.uses li{padding:18px 0 4px 26px;border-top:1px solid var(--line);position:relative;min-width:0}
.uses li::before{content:"";position:absolute;left:0;top:23px;width:13px;height:13px;border-radius:50%;border:3px solid var(--gold2);background:var(--ic)}
.uses h3{font-size:19px;font-weight:700;margin:0 0 6px}
.uses p{font-size:15.5px;color:var(--mut);line-height:1.6;margin:0 0 16px}

/* two-column blocks */
.duo{display:grid;gap:44px;margin-top:60px;align-items:start}
.duo>*{min-width:0;margin-top:0}
.duo>.sec{counter-increment:none}
@media(min-width:960px){
  .duo{grid-template-columns:minmax(0,1fr) 320px}
  .duo.docs{grid-template-columns:280px minmax(0,1fr)}
  .duo.art{grid-template-columns:minmax(0,1fr) 290px}
  .duo.price{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch}
  .side,.toc{position:sticky;top:104px}
  .toc{max-height:calc(100vh - 130px);overflow:auto}
}
.side{padding:44px 28px 30px}
.side h2{font-size:25px}
.side p{color:var(--icm);font-size:15.5px}
.side .btn{width:100%}
.toc{padding:26px 24px 20px}
.toc h2{font:400 12.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--pri);margin-bottom:12px}
.toc ol{list-style:none;margin:0;padding:0;counter-reset:t}
.toc li{counter-increment:t;border-top:1px solid var(--line)}
.toc a{display:flex;gap:12px;align-items:baseline;min-height:44px;padding:10px 0;text-decoration:none;font:600 15px/1.35 var(--disp)}
.toc a::before{content:counter(t,decimal-leading-zero);font:400 12px var(--mono);color:var(--pri);flex:none}
.toc a:hover{color:var(--pri)}

/* page heads */
.head{padding:36px 0 6px;max-width:900px}
.head.wide{max-width:1000px}
.head h1{font-size:clamp(31px,4.1vw,54px)}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-bottom:20px;font:400 13px/1.4 var(--mono);color:#f3dcea}
.crumbs a{color:var(--gold);text-underline-offset:3px;display:inline-flex;align-items:center;min-height:44px}
.crumbs i{font-style:normal;opacity:.6}
.meta,.chipnote{display:flex;align-items:center;gap:10px;margin:20px 0 0;font:400 13.5px/1.4 var(--mono);color:var(--gold)}
.chipnote{color:#f6e3ef;font-family:var(--text);font-size:15.5px;align-items:flex-start}
.chipnote .via{margin-top:5px}

/* prose */
.prose{min-width:0;font-size:16.5px}
.prose>:first-child{margin-top:0}
.prose h2{font-size:clamp(23px,2.2vw,29px);margin:44px 0 14px;padding-top:22px;border-top:2px solid var(--ink)}
.prose h3{font-size:20px;margin:30px 0 10px}
.prose a{color:var(--pri);text-underline-offset:3px}
.prose ul,.prose ol{padding-left:22px;margin:0 0 1.2em}
.prose li{margin-bottom:.45em}
.prose li::marker{color:var(--pri);font-family:var(--mono)}
.prose :not(pre)>code{background:#f1dfea;border-radius:4px;padding:.12em .4em;font-size:.88em;overflow-wrap:anywhere}
.prose table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;margin:0 0 1.4em;font-size:15px}
.prose th,.prose td{padding:11px 14px;border:1px solid var(--line);text-align:left;vertical-align:top;min-width:120px}
.prose th{background:var(--ink);color:var(--paper);font:600 14px var(--disp);border-color:var(--ink)}
.prose tr:nth-child(even) td{background:#f6eaf2}
.prose blockquote{margin:0 0 1.2em;padding:4px 0 4px 18px;border-left:4px solid var(--gold2)}
.read .prose{font-size:17.5px;line-height:1.75;max-width:72ch}
.narrow{max-width:900px}
.sec.narrow .prose{max-width:74ch}

/* faq */
.faq{border-top:2px solid var(--ink)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:18px;min-height:60px;padding:14px 0;cursor:pointer;list-style:none;font:700 18.5px/1.3 var(--disp)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:28px;height:28px;border-radius:5px;background:
  linear-gradient(var(--ink),var(--ink)) 50% 50%/12px 2px no-repeat,linear-gradient(var(--ink),var(--ink)) 50% 50%/2px 12px no-repeat,var(--gold);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg);border-radius:50%}
.ans{padding:0 46px 12px 0;color:var(--mut);max-width:80ch}

/* closer */
.closer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:30px;align-items:center;margin-top:64px;padding-bottom:58px;overflow:hidden}
.closer h2{margin-bottom:8px}
.closer p{color:var(--icm);margin:0;max-width:60ch}
.fingers{position:absolute;left:40px;right:40px;bottom:0;height:20px;background:repeating-linear-gradient(90deg,var(--gold) 0 14px,transparent 14px 22px);border-radius:3px 3px 0 0}

/* key page */
.keyhero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,470px);gap:56px;align-items:start;padding-top:20px}
.keyhero .head{padding-top:26px}
.keyhero h1{font-size:clamp(29px,3.5vw,46px)}
.zif{position:relative;min-width:0;padding:34px 26px 26px;border-radius:10px;background:var(--ic);outline:1.5px solid var(--silk);outline-offset:7px;
  background-image:radial-gradient(circle,var(--gold) 2.6px,transparent 3.2px),radial-gradient(circle,var(--gold) 2.6px,transparent 3.2px);
  background-size:13px 15px,13px 15px;background-repeat:repeat-y;background-position:6px 40px,calc(100% - 6px) 40px}
.zif::before{content:"";position:absolute;left:26px;right:60px;top:12px;height:10px;border-radius:5px;background:linear-gradient(180deg,#f6dc8c,var(--gold2))}
.zif::after{content:"";position:absolute;right:26px;top:6px;width:38px;height:22px;border-radius:6px;background:var(--gold);box-shadow:inset 0 -4px 0 var(--gold2)}
.form{background:var(--paper);color:var(--ink);border-radius:6px;padding:22px 24px 24px;min-width:0}
.tabs2{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:8px;background:#efdbe8;margin-bottom:18px}
.tabs2 button{min-height:44px;border:0;border-radius:5px;background:transparent;color:var(--ink);font:600 15px var(--disp);cursor:pointer}
.tabs2 button[aria-selected=true]{background:var(--ink);color:var(--paper)}
.msg:empty{display:none}
.msg{margin:0 0 14px;padding:11px 14px;border-radius:6px;font-size:14.5px;line-height:1.45}
.msg.err{background:#ffe3e8;color:#7c0b26;border:1.5px solid #b3123a;border-left-width:6px}
.row{margin-bottom:14px}
.row label,.calc label{display:block;margin-bottom:6px;font:400 12.5px/1.3 var(--mono);letter-spacing:.08em;text-transform:uppercase}
.row input{width:100%;min-height:50px;padding:0 14px;border:1.5px solid var(--ink);border-radius:6px;background:#fff;color:var(--ink);font:400 16px var(--text)}
.row input:focus{outline:3px solid var(--pri);outline-offset:1px;border-color:var(--pri)}
.note{font-size:13.5px;line-height:1.45;color:var(--mut);margin:7px 0 0}
.form form>.btn{width:100%;margin-top:6px}
.form form>.note{text-align:center;margin-top:12px}
.keyout{display:none}
.keyout.on{display:block}
.keyout h3{font-size:21px;margin-bottom:12px}
.keybox{display:flex;align-items:center;gap:10px;padding:10px 10px 10px 14px;border-radius:7px;background:var(--ic);color:var(--gold);font:400 14px/1.5 var(--mono)}
.keybox span{flex:1;min-width:0;overflow-wrap:anywhere}
.keybox .btn{flex:none;background:var(--gold);color:var(--ink);box-shadow:0 3px 0 var(--gold2)}
.keyout p{font-size:14.5px;line-height:1.9;margin:12px 0}
.keyout p.note{line-height:1.45;margin:8px 0 0}
.keyout code{background:#f1dfea;border-radius:4px;padding:.1em .4em;font-size:.9em;overflow-wrap:anywhere}
.mut{color:var(--mut)}
.keyout .acts{gap:10px;margin-top:14px}
.specbar{list-style:none;margin:54px 0 0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1.5px solid var(--silk);border-bottom:1.5px solid var(--silk)}
.specbar li{padding:18px 16px;min-width:0;border-left:1.5px dashed rgba(255,255,255,.4)}
.specbar li:first-child{border-left:0;padding-left:0}
.specbar b{display:block;font:700 28px/1.1 var(--disp);color:var(--gold)}
.specbar span{font-size:13.5px;line-height:1.35;color:#f3dcea;display:block;margin-top:4px}

/* pricing */
.spec{display:flex;flex-direction:column;justify-content:space-between;gap:26px}
.spec dl{margin:0;border-top:2px solid var(--ink)}
.spec dl div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:15px 0;border-bottom:1px solid var(--line)}
.spec dt{font-size:15.5px;color:var(--mut);min-width:0}
.spec dd{margin:0;font:700 27px/1 var(--disp);color:var(--pri);white-space:nowrap}
.calcbox{padding:46px 34px 34px}
.calc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.calc>div{min-width:0}
.calc label{color:var(--icm)}
.calc input{width:100%;min-height:52px;padding:0 14px;border:1.5px solid var(--gold2);border-radius:6px;background:#16040f;color:var(--ict);font:400 17px var(--mono)}
.calc input:focus{outline:3px solid var(--gold);outline-offset:1px}
.calc>div:last-child{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:18px 20px;border-radius:7px;background:#16040f;border:1px solid #4a1b3c}
.calc>div:last-child label{margin:0}
.calc output{font:400 clamp(34px,4vw,46px)/1 var(--mono);color:var(--gold)}
.parts.three p{font-size:15.5px}

/* 404 */
.nf{max-width:760px;margin:0 auto;padding:60px 0 40px;text-align:center}
.nf .chip{width:230px;height:130px;margin:0 auto 40px;padding-top:24px}
.nf .chip b{font-size:50px;color:var(--gold)}
.nf .lead{margin:18px auto 30px}
.nf .acts{justify-content:center}

/* footer */
.foot{max-width:1200px;margin:96px auto 0;padding:0 22px 34px}
.foot-in{display:flex;justify-content:space-between;gap:34px;flex-wrap:wrap;padding-top:30px;border-top:1.5px dashed var(--silk)}
.foot-brand{min-width:0;max-width:420px}
.foot-brand p{margin:8px 0 0;color:#f3dcea;font-size:15px}
.foot-links{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,auto));gap:0 38px}
.foot-links a{display:inline-flex;align-items:center;min-height:44px;font:600 15px var(--disp);text-underline-offset:4px;text-decoration-color:var(--gold)}
.foot-links a:hover{color:var(--gold)}
.legal{margin:26px 0 0;font:400 12px/1.6 var(--mono);color:#ecd0e1;max-width:900px}

/* responsive */
@media(max-width:1080px){
  .parts.four{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero{gap:36px}
}
@media(max-width:959px){
  .hero,.keyhero,.split{grid-template-columns:minmax(0,1fr)}
  .keyhero{gap:38px}
  .split{gap:6px}.split h2{position:static}
  .hero{padding-top:18px;gap:40px}
  .closer{grid-template-columns:minmax(0,1fr)}
  .specbar{grid-template-columns:repeat(3,minmax(0,1fr))}
  .specbar li:nth-child(4){border-left:0;padding-left:0}
  .specbar li:nth-child(n+4){border-top:1.5px dashed rgba(255,255,255,.4)}
  .duo.art .toc{order:-1}
}
@media(max-width:860px){
  .burger{display:block}
  .bar .key{margin-left:auto}
  .nav{display:none;position:absolute;left:0;right:0;top:calc(100% + 16px);flex-direction:column;gap:2px;margin:0;padding:8px;background:var(--paper);border-radius:16px;
    box-shadow:0 0 0 1.5px var(--ink),0 18px 40px -10px rgba(20,0,14,.8)}
  .nav.open{display:flex}
  .nav a{min-height:48px;border-radius:10px;font-size:16px}
}
@media(max-width:760px){
  body{font-size:16px}
  main{padding:10px 18px 0}
  .top{padding:10px 10px 14px}
  .card{padding:34px 20px 24px;outline-offset:5px}
  .card::after{left:-6.5px;top:-6.5px}
  .sec,.duo{margin-top:50px}
  .parts,.parts.four,.chain,.uses,.vias.big{grid-template-columns:minmax(0,1fr)}
  .parts li{padding-right:0}
  .chain{gap:26px}
  .chain li{padding:2px 0 0 58px}
  .chain li::after{left:17px;right:auto;top:44px;bottom:-28px;width:4px;height:auto}
  .chain li:last-child::after{display:none}
  .hero-code{padding:32px 14px 16px}
  .pinout{grid-template-columns:58px minmax(0,1fr);margin-top:40px}
  .chip{grid-column:1;grid-row:1/3;padding:30px 4px 12px;justify-content:flex-start;outline-offset:-6px}
  .chip b,.chip>span:last-child{writing-mode:vertical-rl}
  .chip b{font-size:21px}
  .chip .dot{left:10px;top:12px;width:8px;height:8px}
  .pins{grid-column:2;padding:0}
  .pins.l{padding-top:8px}.pins.r{padding-bottom:8px}
  .pins li,.pins.r li{flex-direction:row-reverse;min-height:66px}
  .pins .pt,.pins.r .pt{text-align:left;max-width:none;flex:1;padding:0 0 0 12px}
  .pins .tr,.pins.r .tr{flex:0 0 34px;transform:scaleX(-1)}
  .pins .leg,.pins.r .leg{border-radius:0 3px 3px 0;width:28px}
  .pt b{font-size:22px}
  .specbar{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:44px}
  .specbar li{border-left:0;padding-left:0;border-top:1.5px dashed rgba(255,255,255,.4)}
  .specbar li:nth-child(-n+2){border-top:0}
  .specbar li:last-child{grid-column:1/-1}
  .zif{padding:32px 16px 16px}
  .form{padding:18px 16px 20px}
  .calcbox{padding:42px 18px 20px}
  .calc{grid-template-columns:minmax(0,1fr)}
  .closer .btn,.hero .acts .btn{flex:1 1 100%}
  .fingers{left:20px;right:20px}
  .head{padding-top:18px}
  .ans{padding-right:0}
  .foot{margin-top:70px}
  .read .prose{font-size:16.5px}
  .spec dd{font-size:23px}
}
@media(max-width:440px){
  .logo{font-size:13px;gap:7px}
  .bar{padding-left:10px;gap:6px}
  .bar .key{padding:0 12px;font-size:13.5px}
  .bar .key::before{display:none}
  .foot-links{grid-template-columns:minmax(0,1fr)}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
}
.calcbox{display:flex;flex-direction:column;justify-content:center}
.parts.three h3{font-size:17px;line-height:1.25}
