/* contrALS pages · scoped to .contrals (generated by PM/v2_mockups/contrALS/v3/_build/build.py — do not hand-edit) */
.contrals{color-scheme: dark;
  
  --g:#051230; --p1:#14203c; --p2:#202c47; --ln:#323d55;
  --t1:#ffffff; --t2:#c8cbd1; --t3:#9ba0ac;
  --sig:#00978d; --sig2:#00978d; --sig3:#eb5324;
  
  --red:#F32740; --red-on-dark:#FF5C6E; --red-pill:#D4223A; --red-ink:#BE1329;
  --stone:#F1EFEC; --stone-2:#E7E4DF; --ink:#15181C; --ink2:#4A4F57; --ink3:#5C616A; --line-l:#DDD9D3;
  --bar:#08090c;
  --f-sans:'Lato', 'Helvetica Neue', Arial, system-ui, sans-serif;
  --f-mono:'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace;
  --ease:cubic-bezier(.32,.08,.24,1);
  --page:1680px;
  --box:clamp(20px, 4vw, 64px);}
.contrals *{box-sizing:border-box}
.contrals{scroll-behavior:smooth}
.contrals{margin:0;background:var(--g);color:var(--t1);font-family:var(--f-sans);font-size:17px;line-height:1.62;
  -webkit-font-smoothing:antialiased;overflow-x:clip}
.contrals :where(img){max-width:100%;height:auto;display:block}
.contrals :where(a){color:inherit}
.contrals :where(h1,h2,h3,h4,p){margin:0}
.contrals :where(h1,h2,h3,h4,h5,h6){color:inherit;font-family:var(--f-sans);text-transform:none}
.contrals :where(p,li,dt,dd,th,td,button){font-family:inherit}
.contrals :focus-visible{outline:3px solid var(--red);outline-offset:2px}
.contrals .aa{margin:0 -.10em;color:var(--red)}
.contrals .mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.contrals .wrap{max-width:var(--page);margin-inline:auto}
.contrals .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.contrals .crumbs{max-width:var(--page);margin-inline:auto;padding:18px var(--box) 14px;font-size:14px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;color:var(--t3);display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.contrals .crumbs a{text-decoration:none;color:var(--t2)}
.contrals .crumbs a:hover{color:var(--t1)}
.contrals .crumbs .sep{color:var(--ln)}
.contrals .crumbs .here{color:var(--t1)}
.contrals .eyebrow{font-size:14px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--t2)}
.contrals .eyebrow::after{content:"";display:block;width:38px;height:2px;background:var(--red);margin-top:10px}
.contrals .eyebrow.on-light{color:var(--ink2)}
.contrals .h1{font-weight:900;font-size:clamp(36px,4.6vw,64px);line-height:1.02;letter-spacing:-.02em;text-wrap:balance;margin-top:22px}
.contrals .h1 .sku-base{color:var(--t1)}
.contrals .nw{white-space:nowrap}
.contrals .h1 .sku-plat{color:var(--sig)}
.contrals .h2{font-weight:900;font-size:clamp(30px,3vw,40px);line-height:1.08;letter-spacing:-.015em;text-wrap:balance;margin-top:18px}
.contrals .h3{font-weight:900;font-size:22px;line-height:1.2;letter-spacing:-.01em}
.contrals .lede{font-size:clamp(19px,1.6vw,22px);line-height:1.4;color:var(--t2);margin-top:14px;text-wrap:balance}
.contrals .body{color:var(--t2);max-width:62ch;margin-top:18px}
.contrals .label{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--t3)}
.contrals .band{position:relative}
.contrals .band > .wrap{padding:clamp(48px,6vw,96px) var(--box)}
.contrals .pair{display:grid;grid-template-columns:1fr 1fr;max-width:var(--page);margin-inline:auto}
.contrals .pair > *{min-width:0}
.contrals .box{padding:var(--box)}
@media (max-width:1080px){.contrals .pair{grid-template-columns:1fr}}
.contrals .btn{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:0 24px;border-radius:999px;
  font-family:var(--f-sans);font-weight:700;font-size:14px;letter-spacing:.1em;text-transform:uppercase;
  text-decoration:none;border:1.5px solid var(--ln);color:var(--t1);background:transparent;cursor:pointer;
  transition:background .25s var(--ease),border-color .25s var(--ease),color .25s var(--ease)}
.contrals .btn:hover{border-color:var(--t2)}
.contrals .btn.primary{background:var(--red-pill);border-color:var(--red-pill);color:#fff}
.contrals .btn.primary:hover{background:#B81B30;border-color:#B81B30}
.contrals .btn.on-light{color:var(--ink);border-color:#BDB7AE}
.contrals .btn.on-light:hover{border-color:var(--ink)}
.contrals .btn svg{width:16px;height:16px;flex:none}
.contrals .btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.contrals .chip{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border:1px solid var(--ln);
  font-family:var(--f-mono);font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--t2);white-space:nowrap}
.contrals .chip .dot{width:7px;height:7px;border-radius:50%;background:var(--sig);flex:none}
.contrals .chip.on-light{border-color:var(--line-l);color:var(--ink2)}
.contrals .badge{display:inline-block;padding:4px 9px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  background:var(--t1);color:var(--g)}
.contrals .hero .left{padding:var(--box);padding-top:clamp(28px,3vw,48px);display:flex;flex-direction:column}
.contrals .hero .stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:36px;border-top:1px solid var(--ln);border-bottom:1px solid var(--ln)}
.contrals .hero .stat{padding:18px 16px 16px 0}
.contrals .hero .stat + .stat{padding-left:16px;border-left:1px solid var(--ln)}
.contrals .hero .stat > b{display:block;font-family:var(--f-mono);font-weight:700;font-size:clamp(20px,1.9vw,28px);line-height:1.1;color:var(--t1);white-space:nowrap}
.contrals .hero .stat b small{font-size:.55em;font-weight:500;color:var(--t3);margin-left:3px;letter-spacing:.04em}
.contrals .hero .stat > span{display:block;margin-top:6px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--t3)}
.contrals .hero .marks{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
@media (max-width:560px){.contrals .hero .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
.contrals .hero .stat:nth-child(3){padding-left:0;border-left:0}
.contrals .hero .stat:nth-child(n+3){border-top:1px solid var(--ln)}}
.contrals .stage{position:relative;background:var(--p1);overflow:hidden;min-height:520px;display:flex;flex-direction:column;isolation:isolate}
.contrals .stage::before{content:"";position:absolute;inset:0;z-index:-1;
  background-image:linear-gradient(var(--ln) 1px,transparent 1px),linear-gradient(90deg,var(--ln) 1px,transparent 1px);
  background-size:40px 40px;opacity:.45;
  -webkit-mask-image:radial-gradient(ellipse 75% 70% at 50% 45%,#000 30%,transparent 80%);
          mask-image:radial-gradient(ellipse 75% 70% at 50% 45%,#000 30%,transparent 80%)}
.contrals .stage .hud{position:absolute;inset:18px;pointer-events:none;z-index:3}
.contrals .stage .hud i{position:absolute;width:18px;height:18px;border-color:var(--sig);border-style:solid;border-width:0}
.contrals .stage .hud i:nth-child(1){top:0;left:0;border-top-width:2px;border-left-width:2px}
.contrals .stage .hud i:nth-child(2){top:0;right:0;border-top-width:2px;border-right-width:2px}
.contrals .stage .hud i:nth-child(3){bottom:0;left:0;border-bottom-width:2px;border-left-width:2px}
.contrals .stage .hud i:nth-child(4){bottom:0;right:0;border-bottom-width:2px;border-right-width:2px}
.contrals .stage .hud-tag{position:absolute;top:22px;left:50px;font-family:var(--f-mono);font-size:12px;letter-spacing:.12em;color:var(--t3);text-transform:uppercase;z-index:3}
.contrals .stage .hud-tag b{color:var(--sig);font-weight:500}
.contrals .stage .field{position:relative;flex:1;display:grid;place-items:center;padding:72px 40px 24px}
.contrals .stage .photo{position:relative;z-index:2;width:min(78%,560px);max-height:400px;object-fit:contain;filter:drop-shadow(0 24px 40px rgba(0,0,0,.45))}
.contrals .stage .rings{position:absolute;z-index:1;width:0;height:0;left:var(--rx,50%);top:var(--ry,40%)}
.contrals .stage .rings span{position:absolute;left:0;top:0;width:var(--rmax,520px);height:var(--rmax,520px);margin:calc(var(--rmax,520px)/-2) 0 0 calc(var(--rmax,520px)/-2);
  border-radius:50%;border:1.5px solid var(--sig);opacity:0;transform:scale(.08);animation:ring 3.4s var(--ease) infinite}
.contrals .stage .rings span:nth-child(2){animation-delay:1.13s}
.contrals .stage .rings span:nth-child(3){animation-delay:2.26s}
.contrals .stage[data-state="vacant"] .rings span{animation-play-state:paused;opacity:0}
@keyframes ring{0%{opacity:.0;transform:scale(.08)}12%{opacity:.75}100%{opacity:0;transform:scale(1)}}
.contrals .readout{position:relative;z-index:3;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ln);background:color-mix(in srgb,var(--g) 70%,transparent)}
.contrals .readout > div{padding:16px 20px}
.contrals .readout > div + div{border-left:1px solid var(--ln)}
.contrals .readout .k{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--t3)}
.contrals .readout .v{font-family:var(--f-mono);font-size:18px;font-weight:700;margin-top:4px;display:flex;align-items:center;gap:10px;white-space:nowrap}
.contrals .readout .v .led{width:10px;height:10px;border-radius:50%;background:var(--sig);box-shadow:0 0 0 4px color-mix(in srgb,var(--sig) 25%,transparent);flex:none}
.contrals .stage[data-state="vacant"] .readout .led{background:var(--t3);box-shadow:none}
.contrals .readout .bar{height:6px;background:var(--p2);margin-top:10px;position:relative;overflow:hidden}
.contrals .readout .bar i{position:absolute;inset:0 auto 0 0;width:100%;background:var(--sig);transition:width 1.1s var(--ease)}
.contrals .stage .demo-note{position:absolute;right:50px;top:22px;z-index:3;font-family:var(--f-mono);font-size:12px;letter-spacing:.08em;color:var(--t3);text-transform:uppercase}
@media (max-width:640px){.contrals .stage{min-height:420px}
.contrals .readout .v{font-size:15px}
.contrals .readout > div{padding:12px}
.contrals .stage .demo-note{display:none}}
.contrals .secbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;background:var(--bar);border-block:1px solid #1c1f25}
.contrals .secbar .rail{max-width:var(--page);margin-inline:auto;padding:10px var(--box);display:flex;justify-content:center}
.contrals .secbar .track{display:flex;gap:4px;padding:4px;border-radius:999px;background:var(--p2);overflow-x:auto;scrollbar-width:none;max-width:100%}
.contrals .secbar .track::-webkit-scrollbar{display:none}
.contrals .secbar a{flex:none;display:inline-flex;align-items:center;min-height:38px;padding:0 18px;border-radius:999px;text-decoration:none;
  font-size:13px;font-weight:700;letter-spacing:.075em;text-transform:uppercase;color:var(--t2);transition:background .25s var(--ease),color .25s var(--ease)}
.contrals .secbar a:hover{color:#fff}
.contrals .secbar a:is(:target-current,.is-current){background:var(--red-pill);color:#fff}
.contrals .secbar a .aa{color:var(--red-on-dark)}
.contrals .secbar a:is(:target-current,.is-current) .aa{color:#fff}
@media (max-width:640px){.contrals .secbar .rail{justify-content:flex-start}
.contrals .secbar a{min-height:48px}}
.contrals section[id]{scroll-margin-top:72px}
.contrals .docs{background:var(--p1)}
.contrals .docs h3{margin-top:28px}
.contrals .doclist{list-style:none;padding:0;margin:14px 0 0;border-top:2px solid var(--red)}
.contrals .doclist.tools{border-top-color:var(--ln)}
.contrals .doclist li{border-bottom:1px solid var(--ln)}
.contrals .doclist a{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:14px;align-items:center;padding:16px 0;text-decoration:none;min-height:56px}
.contrals .doclist a:hover .nm{color:#fff;text-decoration:underline;text-underline-offset:3px}
.contrals .doclist .ic{width:22px;height:22px;color:var(--red-on-dark)}
.contrals .doclist.tools .ic{color:var(--t3)}
.contrals .doclist .nm{font-weight:700;color:var(--t1)}
.contrals .doclist .ds{display:block;font-size:15px;color:var(--t3);font-weight:400;margin-top:2px}
.contrals .doclist .fmt{font-family:var(--f-mono);font-size:12px;letter-spacing:.08em;color:var(--t3);text-transform:uppercase}
.contrals .docnote{font-size:14px;color:var(--t3);margin-top:12px;display:flex;align-items:center;gap:6px}
.contrals .qr{display:flex;gap:18px;align-items:center;margin-top:22px;padding:16px;background:var(--p2)}
.contrals .qr img{width:112px;height:112px;background:#fff;padding:6px;flex:none}
.contrals .qr p{font-size:15px;color:var(--t2)}
.contrals .qr b{display:block;color:var(--t1);font-size:17px}
.contrals .specs{background:var(--stone);color:var(--ink)}
.contrals .specs .h2{color:var(--ink)}
.contrals .spec-group{margin-top:30px}
.contrals .spec-group h3{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink2);display:flex;align-items:center;gap:10px}
.contrals .spec-group h3::before{content:"";width:14px;height:2px;background:var(--red)}
.contrals .spec{width:100%;border-collapse:collapse;margin-top:10px}
.contrals .spec th,.contrals .spec td{text-align:left;vertical-align:top;padding:11px 0;border-bottom:1px solid var(--line-l);font-size:16px}
.contrals .spec th{font-weight:400;color:var(--ink2);width:42%;padding-right:16px}
.contrals .spec td{font-family:var(--f-mono);font-weight:500;font-size:15px;color:var(--ink);font-variant-numeric:tabular-nums}
.contrals .spec td .u{color:var(--ink3);font-weight:400}
.contrals .spec td.blank{color:var(--ink3)}
.contrals .pair-docs{grid-template-columns:5fr 7fr}
@media (max-width:1080px){.contrals .pair-docs{grid-template-columns:1fr}}
.contrals .specs{container-type:inline-size}
.contrals .spec-cols{display:grid;grid-template-columns:1fr;gap:0 40px}
@container (min-width:680px){.contrals .spec-cols{grid-template-columns:1fr 1fr}
.contrals .spec th{width:46%}}
.contrals .system{background:var(--g)}
.contrals .system .diagram{margin-top:40px;background:var(--p1);border:1px solid var(--ln);position:relative;overflow-x:auto}
.contrals .system .diagram svg{display:block;width:100%;min-width:720px;height:auto}
.contrals .system .diagram text{font-family:var(--f-mono)}
.contrals .behaviors{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-top:0;border:1px solid var(--ln);border-top:0}
.contrals .behaviors > div{padding:24px 24px 28px}
.contrals .behaviors > div + div{border-left:1px solid var(--ln)}
.contrals .behaviors .k{font-family:var(--f-mono);font-size:12px;letter-spacing:.12em;color:var(--sig);text-transform:uppercase}
.contrals .behaviors h3{font-size:19px;font-weight:900;margin-top:8px;line-height:1.25}
.contrals .behaviors p{font-size:15px;color:var(--t2);margin-top:8px;line-height:1.55}
@media (max-width:980px){.contrals .behaviors{grid-template-columns:1fr 1fr}
.contrals .behaviors > div:nth-child(3){border-left:0}
.contrals .behaviors > div:nth-child(n+3){border-top:1px solid var(--ln)}}
@media (max-width:560px){.contrals .behaviors{grid-template-columns:1fr}
.contrals .behaviors > div + div{border-left:0;border-top:1px solid var(--ln)}}
.contrals .coverage{background:var(--p1)}
.contrals .cov-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,3vw,48px);margin-top:40px}
@media (max-width:980px){.contrals .cov-grid{grid-template-columns:1fr}}
.contrals .panel{background:var(--g);border:1px solid var(--ln);padding:clamp(18px,2vw,28px);min-width:0}
.contrals .panel .label{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.contrals .panel svg{display:block;width:100%;height:auto;margin-top:16px}
.contrals .panel svg text{font-family:var(--f-mono)}
.contrals .params{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--ln);border:1px solid var(--ln);margin-top:16px}
.contrals .params > div{background:var(--g);padding:18px}
.contrals .params b{display:block;font-family:var(--f-mono);font-size:22px;font-weight:700;margin-top:4px;color:var(--t1)}
.contrals .params b .u{font-size:14px;color:var(--t3);font-weight:500}
.contrals .params p{font-size:14px;color:var(--t3);margin-top:4px;line-height:1.45}
.contrals .fits{background:var(--g)}
.contrals .fit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1px;background:var(--ln);border:1px solid var(--ln);margin-top:36px}
.contrals .fit{background:var(--g);padding:24px;text-decoration:none;display:flex;flex-direction:column;gap:6px;min-height:150px;transition:background .25s var(--ease)}
.contrals a.fit:hover{background:var(--p1)}
.contrals .fit .nm{font-weight:900;font-size:20px;line-height:1.2}
.contrals .fit .ap{color:var(--t2);font-size:15px}
.contrals .fit .cn{margin-top:auto;font-family:var(--f-mono);font-size:12px;letter-spacing:.08em;color:var(--sig);text-transform:uppercase}
.contrals .acc-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin-top:28px}
.contrals .acc{border:1px solid var(--ln);padding:18px 20px;background:var(--p1)}
.contrals .acc .mono{font-weight:700;font-size:16px;color:var(--t1)}
.contrals .acc p{font-size:15px;color:var(--t2);margin-top:4px}
.contrals .platforms{background:var(--p1)}
.contrals .ladder{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:40px}
@media (max-width:980px){.contrals .ladder{grid-template-columns:1fr}}
.contrals .rung{background:var(--g);border:1px solid var(--ln);display:flex;flex-direction:column;position:relative}
.contrals .rung .top{height:6px;display:flex}
.contrals .rung .top i{flex:1}
.contrals .rung .hd{padding:24px 24px 0;display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.contrals .rung .nm{font-weight:900;font-size:24px;line-height:1.15}
.contrals .rung .tag{font-family:var(--f-mono);font-size:12px;letter-spacing:.1em;color:var(--t3);text-transform:uppercase;margin-top:4px}
.contrals .rung dl{margin:18px 24px 0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:0}
.contrals .rung dt,.contrals .rung dd{padding:10px 0;border-top:1px solid var(--ln);margin:0;font-size:15px}
.contrals .rung dt{color:var(--t3)}
.contrals .rung dd{font-family:var(--f-mono);font-size:14px;color:var(--t1);text-align:right;padding-left:16px}
.contrals .rung .sib{margin:auto 24px 24px;padding-top:18px}
.contrals .rung .sib a{display:flex;justify-content:space-between;align-items:center;min-height:48px;border:1px solid var(--ln);padding:0 16px;
  text-decoration:none;font-family:var(--f-mono);font-size:14px;font-weight:700;margin-top:8px}
.contrals .rung .sib a:hover{border-color:var(--t2)}
.contrals .rung .sib span.none{display:block;font-size:14px;color:var(--t3);margin-top:8px}
.contrals .rung.here{border-color:var(--t2)}
.contrals .order{background:var(--g)}
.contrals .cat{margin-top:34px;display:flex;flex-wrap:wrap;gap:0;border:1px solid var(--ln)}
.contrals .cat > div{padding:18px 20px;flex:1 1 140px;min-width:0}
.contrals .cat > div + div{border-left:1px solid var(--ln)}
.contrals .cat .seg{font-family:var(--f-mono);font-size:clamp(24px,2.4vw,34px);font-weight:700;letter-spacing:.02em;white-space:nowrap}
.contrals .cat .seg.plat{color:var(--sig)}
.contrals .cat .what{font-size:14px;color:var(--t3);margin-top:6px;line-height:1.4}
@media (max-width:640px){.contrals .cat > div{flex-basis:50%}
.contrals .cat > div:nth-child(3){border-left:0}
.contrals .cat > div:nth-child(n+3){border-top:1px solid var(--ln)}}
.contrals .orderline{margin-top:20px;display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;background:var(--p1);border:1px solid var(--ln);padding:16px 20px}
.contrals .orderline .mono{font-size:18px;font-weight:700}
.contrals .copy-btn{min-height:44px}
.contrals .summary{background:var(--stone);color:var(--ink)}
.contrals .summary .h2{color:var(--ink)}
.contrals .closing{background:var(--bar)}
.contrals .closing .cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,96px)}
@media (max-width:900px){.contrals .closing .cols{grid-template-columns:1fr}}
.contrals .closing p{color:var(--t2);margin-top:14px;max-width:56ch}
.contrals .flag{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-left:6px;vertical-align:middle;
  border-radius:50%;background:var(--red-pill);color:#fff;font-family:var(--f-sans);font-size:11px;font-weight:900;cursor:help;position:relative;line-height:1}
.contrals .flag::after{content:attr(data-n)}
.contrals.flags-off .flag{display:none}
.contrals .flagbtn{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:60;min-height:48px;padding:0 18px;border-radius:999px;
  border:1px solid #3a2a2e;background:#1a0d10;color:#fff;font-family:var(--f-mono);font-size:13px;font-weight:700;letter-spacing:.06em;cursor:pointer;
  display:inline-flex;align-items:center;gap:10px;box-shadow:0 10px 30px rgba(0,0,0,.4)}
.contrals .flagbtn i{width:10px;height:10px;border-radius:50%;background:var(--red)}
.contrals.flags-off .flagbtn i{background:#666}
.contrals .notes{background:#0e0f12;border-top:1px solid #23252b;color:#c9cdd3}
.contrals .notes .h2{color:#fff}
.contrals .notes ol{margin:18px 0 0;padding-left:0;list-style:none;counter-reset:f;display:grid;gap:10px;max-width:120ch}
.contrals .notes ol li{display:grid;grid-template-columns:34px minmax(0,1fr);gap:8px;font-size:15px;line-height:1.5}
.contrals .notes ol li b.n{display:inline-flex;width:24px;height:24px;border-radius:50%;background:var(--red-pill);color:#fff;font-size:12px;align-items:center;justify-content:center}
.contrals .swatches{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.contrals .sw{display:flex;align-items:center;gap:10px;padding:6px 12px 6px 6px;border:1px solid #2a2d33;font-family:var(--f-mono);font-size:12px;color:#c9cdd3}
.contrals .sw i{width:28px;height:28px;flex:none;border:1px solid rgba(255,255,255,.15)}
.contrals .notes .grid2{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:34px}
@media (max-width:900px){.contrals .notes .grid2{grid-template-columns:1fr}}
.contrals .c-hero{position:relative;overflow:hidden;isolation:isolate}
.contrals .c-hero canvas{position:absolute;inset:0;width:100%;height:100%;z-index:-1}
.contrals .c-hero .wrap{padding:clamp(32px,4vw,64px) var(--box) clamp(48px,6vw,96px)}
.contrals .c-hero .wordmark{width:min(440px,72vw);height:auto;margin-top:26px}
.contrals .c-hero .h1{max-width:18ch}
.contrals .c-hero .stats{display:flex;flex-wrap:wrap;gap:0;margin-top:40px;border-block:1px solid var(--ln);max-width:880px}
.contrals .c-hero .stats > div{padding:18px 28px 16px 0;flex:1 1 200px}
.contrals .c-hero .stats > div + div{padding-left:28px;border-left:1px solid var(--ln)}
.contrals .c-hero .stats > div > b{display:block;font-family:var(--f-mono);font-size:clamp(22px,2.2vw,30px);font-weight:700;line-height:1.1}
.contrals .c-hero .stats > div > span{display:block;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--t3);margin-top:6px}
@media (max-width:640px){.contrals .c-hero .stats > div{flex-basis:100%;padding-left:0!important;border-left:0!important}
.contrals .c-hero .stats > div + div{border-top:1px solid var(--ln)}}
.contrals .fams{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;margin-top:40px}
.contrals .fams .fam{grid-column:span 2}
.contrals .fams .fam-sm{grid-column:span 3;min-height:0}
.contrals .fam-sm .img img{max-height:150px}
.contrals .fam-sm .img{min-height:120px}
@media (max-width:1100px){.contrals .fams{grid-template-columns:1fr 1fr}
.contrals .fams .fam,.contrals .fams .fam-sm{grid-column:span 1}}
@media (max-width:640px){.contrals .fams{grid-template-columns:1fr}}
.contrals .fam{position:relative;display:flex;flex-direction:column;background:var(--fg);border:1px solid color-mix(in srgb,var(--fs) 35%,transparent);
  text-decoration:none;color:#fff;min-height:420px;overflow:hidden;isolation:isolate;transition:transform .35s var(--ease),border-color .35s var(--ease)}
.contrals a.fam:hover{border-color:var(--fs);transform:translateY(-3px)}
.contrals .fam .strip{display:flex;height:8px}
.contrals .fam .strip i{flex:1}
.contrals .fam .bd{padding:24px 24px 0}
.contrals .fam .nm{font-weight:900;font-size:28px;line-height:1.1;margin-top:10px}
.contrals .fam .ln{color:rgba(255,255,255,.82);font-size:15px;margin-top:8px;line-height:1.5}
.contrals .fam .img{flex:1;display:grid;place-items:center;padding:20px 28px;min-height:170px;position:relative}
.contrals .fam .img img{max-height:170px;width:auto;filter:drop-shadow(0 18px 30px rgba(0,0,0,.45))}
.contrals .fam .img svg{width:120px;height:120px;color:var(--fs)}
.contrals .fam .ft{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 24px;border-top:1px solid rgba(255,255,255,.14);
  font-family:var(--f-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.82)}
.contrals .fam .ft b{color:var(--fs);font-weight:700}
.contrals .table-wrap{overflow-x:auto;margin-top:36px;border:1px solid var(--ln)}
.contrals .cmp{width:100%;border-collapse:collapse;min-width:760px;table-layout:fixed}
.contrals .cmp col.c0{width:16%}
.contrals .cmp th,.contrals .cmp td{text-align:left;padding:16px 18px;border-bottom:1px solid var(--ln);vertical-align:top;font-size:15px}
.contrals .cmp thead th{font-size:20px;font-weight:900;letter-spacing:-.01em;border-bottom:0;padding-top:22px;position:relative}
.contrals .cmp thead th .tp{position:absolute;left:0;right:0;top:0;height:6px;display:flex}
.contrals .cmp thead th .tp i{flex:1}
.contrals .cmp tbody th{font-weight:400;color:var(--t3);width:18%}
.contrals .cmp td{font-family:var(--f-mono);font-size:14px;color:var(--t1)}
.contrals .cmp tbody tr:last-child > *{border-bottom:0}
.contrals .index-tools{display:flex;flex-wrap:wrap;gap:8px;margin-top:30px}
.contrals .fbtn{min-height:44px;padding:0 18px;border-radius:999px;border:1.5px solid var(--ln);background:transparent;color:var(--t2);
  font-family:var(--f-sans);font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.contrals .fbtn[aria-pressed="true"]{background:var(--red-pill);border-color:var(--red-pill);color:#fff}
.contrals .fbtn .aa{color:var(--red-on-dark)}
.contrals .fbtn[aria-pressed="true"] .aa{color:#fff}
.contrals .idx{width:100%;border-collapse:collapse;min-width:720px}
.contrals .idx th,.contrals .idx td{white-space:nowrap;text-align:left;padding:13px 16px;border-bottom:1px solid var(--ln);font-size:15px;vertical-align:middle}
.contrals .idx thead th{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--t3);background:var(--p1)}
.contrals .idx td.sku{font-family:var(--f-mono);font-weight:700;white-space:nowrap}
.contrals .idx td.sku a{color:var(--t1);text-decoration:underline;text-decoration-color:var(--sig);text-underline-offset:4px;text-decoration-thickness:2px}
.contrals .idx td .pd{display:inline-block;width:10px;height:10px;margin-right:10px;vertical-align:baseline}
.contrals .idx td.m{font-family:var(--f-mono);font-size:14px;color:var(--t2)}
.contrals .idx tr[hidden]{display:none}
.contrals .idx td.docs{font-family:var(--f-mono);font-size:13px;letter-spacing:.06em;color:var(--t3)}
.contrals .idx td.docs a{color:var(--t1);text-decoration:underline;text-decoration-color:var(--sig);text-underline-offset:3px;font-weight:700;display:inline-block;padding:6px 2px}
.contrals .idx td.docs a:hover{color:var(--sig)}
.contrals .idx td .none{color:var(--t3)}
.contrals .idx td.ty{white-space:normal;min-width:260px;color:var(--t2)}
.contrals .idx td .pdp{font-family:var(--f-mono);font-size:12px;letter-spacing:.08em;color:var(--sig);text-transform:uppercase}
.contrals .feat{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:36px}
@media (max-width:980px){.contrals .feat{grid-template-columns:1fr}}
.contrals .fcard{display:flex;flex-direction:column;background:var(--fg);border:1px solid color-mix(in srgb,var(--fs) 35%,transparent);text-decoration:none;color:#fff;transition:border-color .3s var(--ease)}
.contrals .fcard:hover{border-color:var(--fs)}
.contrals .fcard .ph{display:grid;place-items:center;height:220px;padding:24px;background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:32px 32px}
.contrals .fcard .ph img{max-height:170px;width:auto}
.contrals .fcard .bd{padding:20px 22px 24px;border-top:1px solid rgba(255,255,255,.14)}
.contrals .fcard .mono{font-weight:700;font-size:20px}
.contrals .fcard .mono .pl{color:var(--fs)}
.contrals .fcard p{color:rgba(255,255,255,.82);font-size:15px;margin-top:6px}
@media (prefers-reduced-motion:reduce){.contrals{scroll-behavior:auto}
.contrals *,.contrals *::before,.contrals *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
.contrals .stage .rings span{animation:none;opacity:.35}
.contrals .stage .rings span:nth-child(1){transform:scale(.35)}
.contrals .stage .rings span:nth-child(2){transform:scale(.62);opacity:.22}
.contrals .stage .rings span:nth-child(3){transform:scale(.9);opacity:.12}}
.contrals :is(.h1,.h2,.serif){font-family:var(--f-sans)}
@media (max-width:720px){.contrals .crumbs a{display:inline-block;padding:13px 6px;margin:-13px -6px}
.contrals .copy-btn,.contrals .fbtn{min-height:48px}
.contrals .idx td.sku a{display:inline-block;padding:14px 4px;margin:-14px -4px}
.contrals .idx td.docs a{padding:14px 4px;margin:-8px -2px}}
.contrals #synapse .ft b{color:#8fb0d6}
.contrals .fams .fam-wide{grid-column:1/-1;min-height:0}
.contrals .fam-wide .img{min-height:110px}
.contrals .fam-wide .img svg{max-height:110px}
@media (max-width:1100px){.contrals .fams .fam-wide{grid-column:1/-1}}
.contrals[data-fam="master"]{--g:#051230;--p1:#14203c;--p2:#202c47;--ln:#323d55;--t1:#ffffff;--t2:#cdd0d6;--t3:#aaaeb9;--sig:#00978d;--sig2:#00978d;--sig3:#eb5324;--fg:#051230;--fs:#00978d}
.contrals[data-fam="bilevel"]{--g:#111314;--p1:#1f2122;--p2:#2b2d2e;--ln:#3c3d3e;--t1:#ffffff;--t2:#cfd0d0;--t3:#aeafaf;--sig:#78cdd0;--sig2:#cab356;--sig3:#bb7125;--fg:#111314;--fs:#78cdd0}
.contrals[data-fam="acs"]{--g:#1e0e3f;--p1:#2c1c4b;--p2:#372954;--ln:#463962;--t1:#ffffff;--t2:#d2cfd9;--t3:#b2adbe;--sig:#fdbf68;--sig2:#006eb8;--sig3:#fff200;--fg:#1e0e3f;--fs:#fdbf68}
.contrals[data-fam="silvair"]{--g:#112f2c;--p1:#1f3b39;--p2:#2b4643;--ln:#3c5452;--t1:#ffffff;--t2:#cfd5d5;--t3:#aeb8b7;--sig:#96d1aa;--sig2:#099197;--sig3:#b71f57;--fg:#112f2c;--fs:#96d1aa}
.contrals[data-fam="photocell"]{--g:#1c4286;--p1:#2a4d8d;--p2:#355793;--ln:#45649c;--t1:#ffffff;--t2:#d2d9e7;--t3:#b2bfd6;--sig:#f3a257;--sig2:#dd4027;--sig3:#f3a257;--fg:#1c4286;--fs:#f3a257}
.contrals[data-fam="synapse"]{--g:#12354e;--p1:#204159;--p2:#2c4b61;--ln:#3d596e;--t1:#ffffff;--t2:#d0d7dc;--t3:#aebac3;--sig:#5a82b3;--sig2:#5a82b3;--sig3:#5a82b3;--fg:#12354e;--fs:#5a82b3}
