/* AssessQu section styles (assembled from per-section fragments) */

/* ==== why ==== */
/* The exposure clock, round 3. It leads with the answer instead of the controls: the reader
   sees their position drawn the moment the section arrives, and the sliders are an invitation
   to change it rather than a prerequisite for seeing anything.
   ONE function, px(year) in sections.js, positions every mark. The inline left:% values in
   index.html are that same function evaluated at build time for the default 25-year axis, so
   the composition is complete with no script at all.
   Contrast on the panel ground #080B14: #A8ADC0 8.80  #9BA0B4 7.56  #4EA1FF 7.36
   #E9EBF2 16.50  #8FC4FF 10.77  #5A6178 3.20 */
.aq-why-eyebrow{font-family:var(--mono);font-size:.78rem;letter-spacing:.28em;text-transform:uppercase;color:var(--blue-text);margin:0 0 18px}
.aq-why-head{font-size:clamp(2rem,5vw,3.6rem);font-weight:800;letter-spacing:-.035em;line-height:1.02;color:var(--ink);margin:0;max-width:16ch}
.aq-why-lead{font-size:18px;line-height:1.6;color:var(--ink-2);max-width:60ch;margin:26px 0 0}

.aq-why-panel{position:relative;margin-top:clamp(48px,7vw,96px);
  margin-inline:calc(50% - 50vw);width:100vw;
  background:var(--noir);border-block:1px solid var(--noir-line);border-radius:0;
  padding:clamp(30px,3.6vw,52px) 0;overflow:hidden}
.aq-why-inner{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gut)}
.aq-why-panel-tag{font-family:var(--mono);font-size:11.2px;letter-spacing:.24em;text-transform:uppercase;color:#A8ADC0;margin-bottom:22px}

/* the answer, before any control */
.aq-why-say{font-family:var(--sans);font-weight:800;letter-spacing:-.03em;line-height:1.08;
  font-size:clamp(1.6rem,3.2vw,2.5rem);color:var(--noir-ink);margin:0;max-width:22ch}
.aq-why-say b{color:var(--blue);font-weight:800}
.aq-why-verdict{font-family:var(--mono);font-size:clamp(13px,1.3vw,15px);line-height:1.6;
  color:#A8ADC0;margin:12px 0 0;max-width:52ch}
.aq-why-verdict.is-clear{color:#8FC4FF}

.aq-why-plot{margin-top:clamp(30px,3.4vw,44px)}

/* the two years the research converges on, labelled above the bar they cut */
.aq-why-flags{position:relative;height:52px}
.aq-why-flag{position:absolute;bottom:0;transform:translateX(-1px);display:flex;flex-direction:column;
  padding-left:9px;border-left:2px solid #5A6178;white-space:nowrap}
.aq-why-flag-y{font-family:var(--sans);font-weight:800;font-size:19px;letter-spacing:-.02em;color:var(--noir-ink);line-height:1.1}
.aq-why-flag-w{font-family:var(--mono);font-size:11.5px;color:#A8ADC0;margin-top:3px}
.aq-why-flag-n{font-family:var(--mono);font-size:11.5px;color:#868BA0;margin-top:1px}

.aq-why-track{position:relative;height:46px;background:var(--noir-2);border-block:1px solid var(--noir-line)}
.aq-why-bar{position:absolute;left:0;top:0;bottom:0;width:0;
  background:linear-gradient(180deg,#6BB2FF 0%,#4EA1FF 46%,#2F7BE0 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28);
  transition:width 520ms var(--e-out)}
/* the stretch of the window that runs past the last deadline, marked on the bar itself */
.aq-why-over{position:absolute;top:0;bottom:0;width:0;
  background:repeating-linear-gradient(-45deg,rgba(8,11,20,.42) 0 7px,transparent 7px 14px);
  border-right:2px solid #8FC4FF;
  transition:width 520ms var(--e-out), left 520ms var(--e-out)}
.aq-why-cut{position:absolute;top:-6px;bottom:-6px;width:2px;background:#E9EBF2}
.aq-why-now{position:absolute;left:12px;top:50%;transform:translateY(-50%);
  font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--blue-ink)}
.aq-why-end{position:absolute;top:50%;transform:translateY(-50%);margin-left:12px;
  font-family:var(--sans);font-weight:800;font-size:21px;letter-spacing:-.02em;color:var(--noir-ink);
  transition:left 520ms var(--e-out)}

.aq-why-axis{position:relative;height:24px;margin-top:9px}
.aq-why-tick{position:absolute;top:0;width:1px;height:5px;background:#3A4358}
.aq-why-tick-maj{height:9px;background:#5A6178}
.aq-why-axlbl{position:absolute;top:12px;transform:translateX(-50%);font-family:var(--mono);font-size:11.2px;letter-spacing:.06em;color:#A8ADC0}
.aq-why-axis > .aq-why-axlbl:first-of-type{transform:none}
.aq-why-axis > .aq-why-axlbl:last-of-type{transform:translateX(-100%)}

/* the controls sit UNDER the answer and say plainly that they are the reader's to move */
.aq-why-ctl{margin-top:clamp(26px,3vw,38px);display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));gap:10px clamp(24px,4vw,64px)}
.aq-why-ctl-head{grid-column:1 / -1;font-family:var(--mono);font-size:12.5px;letter-spacing:.02em;
  color:#8FC4FF;margin:0 0 2px}
.aq-why-ctl-row{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:2px 14px}
.aq-why-ctl-lbl{font-family:var(--mono);font-size:12.5px;color:#A8ADC0;line-height:1.4}
.aq-why-ctl-out{font-family:var(--sans);font-weight:700;font-size:16px;color:var(--blue);white-space:nowrap}
.aq-why-slider{grid-column:1 / -1;width:100%;margin:0;padding:13px 0;appearance:none;-webkit-appearance:none;
  background:transparent;height:44px;cursor:pointer}
.aq-why-slider::-webkit-slider-runnable-track{height:3px;background:#5A6178}
.aq-why-slider::-moz-range-track{height:3px;background:#5A6178}
.aq-why-slider::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;
  background:var(--blue);border:3px solid var(--noir);box-shadow:0 0 0 1px var(--blue);margin-top:-8px}
.aq-why-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--blue);
  border:3px solid var(--noir);box-shadow:0 0 0 1px var(--blue)}
.aq-why-slider:focus-visible{outline:2px solid var(--blue);outline-offset:4px}

.aq-why-src{font-family:var(--mono);font-size:13px;line-height:1.7;color:#868BA0;margin:clamp(22px,2.6vw,32px) 0 0}
.aq-why-src-link{color:#A8ADC0;box-shadow:inset 0 -1px 0 #5A6178}
.aq-why-src-link:hover{color:var(--blue);box-shadow:inset 0 -1px 0 var(--blue)}

.aq-why-points{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,44px);margin-top:clamp(38px,5vw,60px)}
.aq-why-point{position:relative;padding-top:22px}
.aq-why-rule{position:absolute;top:0;left:0;height:2px;width:0;background:var(--line-2)}
.aq-why-point-accent .aq-why-rule{background:var(--blue-deep)}
.aq-why-idx{font-family:var(--mono);font-size:.72rem;letter-spacing:.16em;color:#63677A;margin-bottom:12px}
.aq-why-point-accent .aq-why-idx{color:var(--blue-text)}
.aq-why-pt-head{font-size:clamp(1.3rem,2.4vw,1.6rem);font-weight:700;letter-spacing:-.02em;color:var(--ink);margin:0 0 12px;line-height:1.1}
.aq-why-pt-body{font-size:15.5px;line-height:1.62;color:var(--ink-2);margin:0}

.aq-why-reveal{opacity:0;transform:translateY(16px)}

@media(max-width:820px){
  .aq-why-flags{height:58px}
  .aq-why-flag-w,.aq-why-flag-n{font-size:11px}
  .aq-why-ctl{grid-template-columns:minmax(0,1fr);gap:18px}
  .aq-why-axlbl{font-size:10.5px}
  .aq-why-points{grid-template-columns:1fr;gap:28px}
}
@media(max-width:520px){
  .aq-why-flag-n{display:none}
  .aq-why-end{font-size:17px;margin-left:8px}
  .aq-why-now{display:none}
}
@media (prefers-reduced-motion: reduce){
  .aq-why-bar,.aq-why-over,.aq-why-end{transition:none !important}
}

/* ==== steps ==== */
.aq-steps-head{max-width:960px;margin-bottom:clamp(64px,7vw,104px)}
.aq-steps-eyebrow{font-family:var(--mono);font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--blue-text);margin-bottom:20px}
.aq-steps-title{font-family:var(--sans);font-weight:800;letter-spacing:-.035em;line-height:1.02;font-size:clamp(2rem,5vw,3.6rem);color:var(--ink);margin:0}

/* The rail, the station and the numeral now live in three tracks of ONE grid. Before this, three
   things that must share an origin were positioned from three different origins by three different
   clamp() functions (.aq-steps-rail padding-left, .aq-steps-line left, .aq-steps-node left), which
   put the line 64.6px off the stations at 1440 and ran it straight through the "01" and "02"
   numerals. Alignment is true by construction here, not by three clamps happening to agree. */
.aq-steps-rail{position:relative;padding-left:0;
  --aq-lane:24px;
  --aq-idx:clamp(1.6rem,4vw,3rem);
  --aq-cap:calc(var(--aq-idx) * 0.512);      /* the numeral's figure height, from the font metrics */
  --aq-gap:clamp(22px,2.2vw,32px);
  --aq-step:clamp(56px,6vw,88px);
  --aq-panel-pad:clamp(28px,3.5vw,44px)}

/* the resting rail is drawn per row in CSS, so it survives a JS failure and has no seams */
.aq-steps-row::before{content:"";position:absolute;z-index:0;left:calc(var(--aq-lane) / 2 - 1px);
  width:2px;top:0;bottom:0;background:var(--ink-3)}
.aq-steps-row:first-of-type::before{top:var(--aq-cap)}
.aq-steps-row:last-of-type::before{bottom:calc(100% - var(--aq-cap))}
.aq-steps-line{position:absolute;left:calc(var(--aq-lane) / 2 - 1px);width:2px;
  background:transparent;overflow:hidden;top:0;height:0}
.aq-steps-line-fill{position:absolute;left:0;top:0;width:100%;height:100%;
  background:linear-gradient(180deg,var(--blue-deep),var(--blue))}

.aq-steps-row{position:relative;display:grid;
  grid-template-columns:var(--aq-lane) calc(var(--aq-idx) * 1.2) minmax(0,1fr);
  column-gap:var(--aq-gap);align-items:start;padding:0 0 var(--aq-step)}
.aq-steps-row:last-of-type{padding-bottom:0}
.aq-steps-row.aq-steps-in{transition:opacity .7s var(--e-out),transform .7s var(--e-out)}

.aq-steps-node{grid-column:1;justify-self:center;align-self:start;
  margin-top:calc(var(--aq-cap) - 7px);
  width:14px;height:14px;transform:rotate(45deg);
  background:var(--canvas);border:2px solid var(--ink-3);z-index:1;
  transition:border-color .5s var(--e-out),background .5s var(--e-out)}
.aq-steps-row.aq-steps-lit .aq-steps-node{border-color:var(--blue-deep);background:var(--blue-deep)}

.aq-steps-idx{grid-column:2;font-family:var(--mono);font-weight:600;font-size:var(--aq-idx);
  line-height:1;color:#767A8C;letter-spacing:-.02em;padding-top:0}
.aq-steps-body{grid-column:3;min-width:0}
.aq-steps-rowtop{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px 24px;margin-bottom:14px}
.aq-steps-rowtitle{font-family:var(--sans);font-weight:800;letter-spacing:-.02em;font-size:clamp(1.4rem,2.6vw,2rem);color:var(--ink);margin:0;line-height:1.05}
.aq-steps-status{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);border:1px solid var(--line-2);border-radius:2px;padding:6px 12px;white-space:nowrap;flex:0 0 auto}
.aq-steps-desc{font-family:var(--sans);font-size:clamp(1rem,1.4vw,1.125rem);line-height:1.55;color:var(--ink-2);max-width:64ch;margin:0 0 22px}

.aq-steps-chipslbl{font-family:var(--mono);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--blue-text);margin:0 0 10px}
.aq-steps-chips{display:flex;flex-wrap:wrap;gap:10px}
.aq-steps-chip{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:.8rem;letter-spacing:.01em;color:var(--blue-text);font-weight:500;text-decoration:none;background:var(--blue-wash);border:1px solid var(--blue-deep);border-radius:2px;padding:10px 15px;line-height:1;box-shadow:0 1px 0 var(--blue-deep);transition:border-color .3s var(--e-out),color .3s var(--e-out),background .3s var(--e-out),transform .3s var(--e-out),box-shadow .3s var(--e-out)}
.aq-steps-chip-arw{font-size:.9em;transition:transform .3s var(--e-out)}
.aq-steps-chip:hover{border-color:var(--blue-deep);color:#0E3F86;background:#CBE2FF;transform:translateY(-2px);box-shadow:0 3px 0 var(--blue-deep)}
.aq-steps-chip:hover .aq-steps-chip-arw{transform:translate(2px,-2px)}
.aq-steps-chip:focus-visible{outline:2px solid var(--blue-text);outline-offset:3px}

/* the spine is a treatment of the TEXT, not of the station. The node and the numeral stay on the
   canvas in columns 1 and 2, identical to the other three stops, so the rail never kinks. */
.aq-steps-spine{--aq-cap:calc(var(--aq-idx) * 0.512 + var(--aq-panel-pad))}
.aq-steps-spine .aq-steps-idx{margin-top:var(--aq-panel-pad);color:var(--blue-deep)}
.aq-steps-spine .aq-steps-body{background:var(--noir);border-radius:6px;padding:var(--aq-panel-pad);box-shadow:0 30px 70px -40px rgba(8,11,20,.7)}
.aq-steps-spine .aq-steps-rowtitle{color:var(--noir-ink)}
.aq-steps-spine .aq-steps-desc{color:var(--noir-ink-2)}
.aq-steps-spine .aq-steps-status{color:var(--blue-soft);border-color:var(--noir-line)}
.aq-steps-spine .aq-steps-chip{background:rgba(78,161,255,.14);border-color:var(--blue);color:#BFDBFF;box-shadow:0 1px 0 rgba(78,161,255,.5)}
.aq-steps-spine .aq-steps-chip:hover{border-color:var(--blue-soft);color:#fff;background:rgba(78,161,255,.26);transform:translateY(-2px);box-shadow:0 3px 0 rgba(78,161,255,.6)}
.aq-steps-spine .aq-steps-chipslbl{color:var(--blue-soft)}

@media(max-width:720px){
  .aq-steps-rail{--aq-lane:18px;--aq-gap:14px}
  .aq-steps-row{grid-template-columns:var(--aq-lane) calc(var(--aq-idx) * 1.15) minmax(0,1fr)}
  .aq-steps-rowtop{margin-top:2px}
  .aq-steps-status{order:2}
}

/* ==== product ==== */
.aq-product-intro{max-width:920px;margin:0 0 clamp(48px,7vw,88px)}
.aq-product-eyebrow{display:inline-block;font-family:var(--mono);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--blue-text);margin-bottom:22px}
.aq-product-h2{font-family:var(--sans);font-weight:800;font-size:clamp(2rem,5vw,3.6rem);line-height:1.02;letter-spacing:-.035em;color:var(--ink);margin:0 0 26px}
.aq-product-lede{font-family:var(--sans);font-size:clamp(1.02rem,1.4vw,1.22rem);line-height:1.55;color:var(--ink-2);max-width:820px;margin:0}






























































































@media(max-width:860px){
  
  
  
  
  
}
@media(max-width:480px){
  
  
  
  
}

/* ==== who ==== */
.aq-who-head{max-width:60ch;margin-bottom:clamp(36px,6vw,64px)}
.aq-who-eyebrow{display:inline-block;font-family:var(--mono);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--blue-text);margin-bottom:18px}
.aq-who-eyebrow--dark{color:var(--blue-soft)}
.aq-who-title{font-family:var(--sans);font-weight:800;letter-spacing:-.035em;font-size:clamp(2rem,5vw,3.6rem);line-height:1.02;color:var(--ink);margin:0}

.aq-who-bento{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}
.aq-who-cell{grid-column:span 2;position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:230px;padding:26px 24px;background:var(--paper);border:1px solid var(--line);border-radius:4px;overflow:hidden;transition:border-color .5s var(--e-out),background .5s var(--e-out),box-shadow .5s var(--e-out)}
.aq-who-cell--lg{grid-column:span 3;min-height:300px}
.aq-who-cell--wide{grid-column:span 3}
.aq-who-cell::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 58%,rgba(78,161,255,.08));opacity:0;transition:opacity .5s var(--e-out);pointer-events:none}
.aq-who-cell::after{content:"";position:absolute;left:0;top:0;height:100%;width:2px;background:var(--blue);transform:scaleY(0);transform-origin:top;transition:transform .5s var(--e-out)}
.aq-who-cell:hover{border-color:var(--blue);background:var(--canvas);box-shadow:0 18px 40px -28px rgba(8,11,20,.5)}
.aq-who-cell:hover::before{opacity:1}
.aq-who-cell:hover::after{transform:scaleY(1)}
.aq-who-cell:hover .aq-who-bar{background:#0E3F86}

.aq-who-index{font-family:var(--mono);font-size:.72rem;letter-spacing:.18em;color:var(--ink-3)}
.aq-who-body{margin-top:auto}
.aq-who-name{font-family:var(--sans);font-weight:700;font-size:clamp(1.3rem,2.4vw,1.8rem);letter-spacing:-.02em;color:var(--ink);margin:0 0 10px}
.aq-who-cell--lg .aq-who-name{font-size:clamp(1.6rem,3vw,2.3rem)}
.aq-who-line{font-family:var(--sans);font-size:16px;line-height:1.5;color:var(--ink-2);margin:0;max-width:36ch}

.aq-who-horizon{margin-top:22px;height:3px;width:100%;background:var(--line);border-radius:2px;overflow:hidden}
.aq-who-bar{display:block;height:100%;width:0;background:var(--blue-text);border-radius:2px;transition:background .4s var(--e-out)}

.aq-who-partners{position:relative;margin-top:clamp(48px,7vw,84px);background:var(--noir);border-radius:6px;overflow:hidden;isolation:isolate}
.aq-who-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:.9;display:block}
.aq-who-partners-inner{position:relative;z-index:1;padding:clamp(36px,5vw,60px) clamp(28px,4vw,56px)}
.aq-who-partners-head{max-width:56ch;margin-bottom:clamp(32px,4vw,48px)}
.aq-who-partners-title{font-family:var(--sans);font-weight:800;letter-spacing:-.03em;font-size:clamp(1.4rem,2.8vw,2.1rem);line-height:1.05;color:var(--noir-ink);margin:0}

.aq-who-plist{list-style:none;margin:0;padding:0;display:grid;gap:1px;background:var(--noir-line);border-top:1px solid var(--noir-line);border-bottom:1px solid var(--noir-line)}
.aq-who-prow{position:relative;display:grid;grid-template-columns:minmax(220px,.9fr) 1.6fr;gap:clamp(16px,3vw,40px);align-items:baseline;padding:22px 4px;background:var(--noir);transition:background .4s var(--e-out)}
.aq-who-prow:hover{background:var(--noir-2)}
.aq-who-pname{font-family:var(--sans);font-weight:700;font-size:clamp(1.05rem,1.6vw,1.25rem);letter-spacing:-.015em;color:var(--noir-ink);transition:color .4s var(--e-out)}
.aq-who-prow:hover .aq-who-pname{color:var(--blue-soft)}
.aq-who-pline{font-family:var(--sans);font-size:15.5px;line-height:1.5;color:var(--noir-ink-2)}

.aq-who-anim .aq-who-cell,
.aq-who-anim .aq-who-partners-head,
.aq-who-anim .aq-who-prow{opacity:0}
.aq-who-anim .aq-who-cell{transform:translateY(24px)}
.aq-who-anim .aq-who-partners-head{transform:translateY(20px)}
.aq-who-anim .aq-who-prow{transform:translateX(-16px)}
.aq-who-reveal{opacity:1 !important;transform:none !important}

@media(max-width:900px){
  .aq-who-bento{grid-template-columns:repeat(2,1fr)}
  .aq-who-cell,.aq-who-cell--lg,.aq-who-cell--wide{grid-column:span 1;min-height:200px}
  .aq-who-prow{grid-template-columns:1fr;gap:6px}
}
@media(max-width:540px){
  .aq-who-bento{grid-template-columns:1fr}
  .aq-who-cell,.aq-who-cell--lg,.aq-who-cell--wide{grid-column:span 1;min-height:180px}
}

/* ==== quantum ==== */
/* The section that has to stand out. It sits between two light sections, so it goes to the
   noir ground the design system already uses for its instrument moments, which is what makes
   it read as a different register rather than more of the same. No canvas, no starfield, no
   glow, and NO fill or coloured edge on the cards: a hairline and the type do the work. */
.aq-quantum-root{
  position:relative;
  background:var(--noir);
  color:var(--noir-ink);
  margin-inline:calc(50% - 50vw);
  width:100vw;
  padding-block:clamp(72px,10vh,132px);
  overflow:hidden;
}
.aq-quantum-inner{ position:relative; z-index:2; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gut); }
.aq-quantum-head{ max-width:none; }
.aq-quantum-eyebrow{
  display:inline-block; font-family:var(--mono); font-size:0.72rem; letter-spacing:0.32em;
  text-transform:uppercase; color:var(--blue); margin-bottom:1.6rem;
}
.aq-quantum-display{
  font-family:var(--sans); font-weight:800; letter-spacing:-0.045em; line-height:0.94;
  font-size:clamp(2.4rem,5vw,4.4rem); margin:0 0 1.6rem; color:#fff; max-width:15ch;
}
.aq-quantum-support{
  font-size:clamp(1.05rem,1.5vw,1.28rem); line-height:1.55; color:var(--noir-ink-2);
  margin:0; max-width:54ch;
}
.aq-quantum-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(20px,2.6vw,40px);
  margin-top:clamp(44px,6vh,76px);
}
/* one hairline, nothing else. No background, no left rule, no radius theatre. */
.aq-quantum-card{
  position:relative; background:transparent;
  border:0; border-top:1px solid var(--noir-line);
  border-radius:0; padding:clamp(24px,2.6vw,34px) 0 0;
}
.aq-quantum-label{
  display:block; font-family:var(--mono); font-size:0.72rem; letter-spacing:0.18em;
  text-transform:uppercase; color:var(--blue); margin-bottom:16px;
}
.aq-quantum-title{
  font-size:clamp(1.35rem,2.2vw,1.8rem); font-weight:700; letter-spacing:-0.025em;
  line-height:1.14; color:#fff; margin:0 0 16px;
}
.aq-quantum-body{ font-size:16.5px; line-height:1.62; color:var(--noir-ink-2); margin:0; }
.aq-quantum-bullets{ list-style:none; padding:0; margin:0 0 18px; }
.aq-quantum-bullets li{
  position:relative; padding-left:20px; margin-bottom:13px;
  font-size:16.5px; line-height:1.62; color:var(--noir-ink-2);
}
.aq-quantum-bullets li::before{
  content:""; position:absolute; left:0; top:.66em; width:6px; height:6px; background:var(--blue);
}
.aq-quantum-close{ font-size:16.5px; line-height:1.62; color:var(--noir-ink-2); margin:0; }
.aq-quantum-cta{
  display:inline-flex; align-items:center; gap:8px; margin-top:20px; min-height:32px;
  font-family:var(--mono); font-size:0.78rem; letter-spacing:0.16em; text-transform:uppercase;
  color:var(--blue); box-shadow:inset 0 -1px 0 var(--noir-line);
  transition:box-shadow .2s var(--e-out);
}
.aq-quantum-cta:hover{ box-shadow:inset 0 -1px 0 var(--blue); }
.aq-quantum-arw{ display:inline-flex; transition:transform .2s var(--e-out); }
.aq-quantum-cta:hover .aq-quantum-arw{ transform:translateX(3px); }
.aq-quantum-siblings{
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(14px,1.8vw,20px);
  margin-top:clamp(48px,6vh,80px); padding-top:clamp(30px,4vh,48px);
  border-top:1px solid var(--noir-line);
}
.aq-quantum-sib{
  display:flex; align-items:center; gap:14px; flex-wrap:wrap;
  background:transparent; border:0; padding:0;
  transition:transform .2s var(--e-out);
}
.aq-quantum-sib:hover{ transform:translateX(3px); }
.aq-quantum-sib-name{ font-weight:700; letter-spacing:-0.02em; color:#fff; }
.aq-quantum-sib-desc{ font-size:0.92rem; color:var(--noir-ink-2); flex:1 1 auto; }
.aq-quantum-sib-arw{ color:var(--blue); }
.aq-quantum-group{
  margin-top:clamp(26px,3vh,40px); font-size:0.95rem; line-height:1.6;
  color:var(--noir-ink-2); max-width:70ch;
}
.aq-quantum-reveal{ opacity:0; transform:translateY(18px); }

@media (max-width:860px){
  .aq-quantum-grid{ grid-template-columns:1fr; }
  .aq-quantum-siblings{ grid-template-columns:1fr; gap:22px; }
}
@media (prefers-reduced-motion: reduce){
  .aq-quantum-reveal{ opacity:1 !important; transform:none !important; }
}

/* ==== talk ==== */
.aq-talk-sec{
  position:relative;
  background:var(--canvas);
  overflow:hidden;
  isolation:isolate;
}
.aq-talk-field{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:0;
  display:block;
  pointer-events:none;
}
.aq-talk-glow{
  position:absolute;
  z-index:0;
  left:50%;
  bottom:-32%;
  width:min(120vw,1100px);
  height:min(120vw,1100px);
  transform:translateX(-50%) scale(0.86);
  pointer-events:none;
  background:radial-gradient(closest-side, rgba(78,161,255,0.16), rgba(78,161,255,0.05) 46%, rgba(234,235,239,0) 72%);
  opacity:0;
}
.aq-talk-scan{
  position:absolute;
  z-index:1;
  left:0;
  top:0;
  width:100%;
  height:2px;
  pointer-events:none;
  background:linear-gradient(90deg, rgba(47,123,224,0) 0%, rgba(47,123,224,0.45) 50%, rgba(47,123,224,0) 100%);
  opacity:0;
  transform:translateY(0);
}
.aq-talk-wrap{
  position:relative;
  z-index:2;
  max-width:960px;
  text-align:center;
}
.aq-talk-eyebrow{
  font-family:var(--mono);
  font-size:.78rem;
  letter-spacing:.32em;
  text-transform:uppercase;
  color:var(--blue-text);
  margin:0 0 clamp(20px,3vw,30px);
}
.aq-talk-head{
  font-family:var(--sans);
  font-weight:800;
  letter-spacing:-.035em;
  line-height:1.02;
  font-size:clamp(2.2rem,5.6vw,4.2rem);
  color:var(--ink);
  margin:0 auto clamp(24px,3.4vw,34px);
  max-width:16ch;
}
.aq-talk-line{
  display:block;
  overflow:hidden;
}
.aq-talk-line > span{
  display:block;
  will-change:transform;
}
.aq-talk-accent{
  color:var(--blue-text);
  display:inline;
  position:relative;
}
.aq-talk-rule{
  position:absolute;
  left:0;
  right:0;
  bottom:-0.12em;
  height:2px;
  background:var(--blue);
  transform:scaleX(0);
  transform-origin:left center;
  border-radius:2px;
}
.aq-talk-body{
  font-family:var(--sans);
  font-size:clamp(1rem,1.4vw,1.15rem);
  line-height:1.6;
  color:var(--ink-2);
  max-width:56ch;
  margin:0 auto clamp(32px,4.2vw,44px);
}
.aq-talk-actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  justify-content:center;
  align-items:center;
  margin-bottom:clamp(20px,2.6vw,26px);
}
.aq-talk-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  font-family:var(--sans);
  font-weight:600;
  font-size:1.0625rem;
  letter-spacing:-.005em;
  line-height:1;
  height:54px;
  min-width:184px;
  padding:0 30px;
  border-radius:100px;
  transition:transform .18s var(--e-out), background .18s var(--e-out), box-shadow .3s var(--e-out);
}
.aq-talk-cta-primary{
  background:var(--ink);
  color:#fff;
  box-shadow:0 0 0 rgba(20,22,31,0);
}
.aq-talk-cta-primary:hover{
  background:var(--blue-text);
  transform:translateY(-2px);
  box-shadow:0 18px 44px -18px rgba(20,22,31,0.5);
}
.aq-talk-cta-primary:active{ transform:translateY(-2px) scale(.97); transition-duration:.1s; }
.aq-talk-cta-primary:focus-visible{ outline:2px solid var(--blue-text); outline-offset:3px; }
.aq-talk-cta-arrow{
  display:inline-flex;
  transition:transform .4s var(--e-out);
}
.aq-talk-cta-primary:hover .aq-talk-cta-arrow{
  transform:translateX(4px);
}
.aq-talk-ready .aq-talk-eyebrow,
.aq-talk-ready .aq-talk-body,
.aq-talk-ready .aq-talk-cta,
.aq-talk-ready .aq-talk-glow{
  opacity:1;
}
.aq-talk-ready .aq-talk-glow{
  transform:translateX(-50%) scale(1);
}
.aq-talk-ready .aq-talk-line > span{
  transform:translateY(0);
}
.aq-talk-ready .aq-talk-rule{
  transform:scaleX(1);
}
@media (max-width:560px){
  .aq-talk-head{ max-width:100%; }
  .aq-talk-cta{ width:100%; justify-content:center; }
  .aq-talk-actions{ flex-direction:column; }
}

.aq-product-honest { max-width: 62ch; margin: 14px 0 0; font-size: .95rem; line-height: 1.55; color: var(--ink-2); }



/* ==== talk page: the one place on the site a reader types ====
   Radius 0 on every input, so the single pill CTA stays the only radiused thing on the page.
   Every text colour below is measured: label #4A4E5C is 7.54:1 on --paper, the hint colour
   #63677A is 5.09:1 on --paper and 4.70:1 on --canvas, and the error red #B42318 is 5.98:1
   on --paper and 5.52:1 on --canvas. The severity red is borrowed from the platform's
   functional scale for validation only, and is used for nothing decorative. */
.aq-talkpage{ padding-top:150px; padding-bottom:clamp(64px,9vh,120px); }
.aq-talkpage-wrap{ max-width:720px; }
.aq-talkpage-eye{ margin:0 0 20px; }
.aq-talkpage-head{ font-size:clamp(2.2rem,5vw,3.4rem); margin:0; }
.aq-talkpage-deck{ max-width:56ch; margin:24px 0 0; }
.aq-talkpage-orient{ margin:22px 0 0; text-transform:none; letter-spacing:.02em; font-size:.8125rem; line-height:1.6; color:#63677A; }
.aq-talkpage-orient-link{ color:var(--blue-text); box-shadow:inset 0 -1px 0 var(--line-2); }
.aq-talkpage-orient-link:hover{ box-shadow:inset 0 -1px 0 var(--blue-text); }

/* form and success panel share one cell, so the confirmation lands where the form was */
.aq-formcell{ display:grid; margin-top:clamp(38px,5vw,52px); }
.aq-formcell > *{ grid-area:1 / 1; }
.aq-formcell > [hidden]{ display:none; }

.aq-form{ display:block; }
.aq-field{ margin-bottom:22px; }
.aq-label{ display:block; font-family:var(--mono); font-size:.8125rem; font-weight:500;
  letter-spacing:.12em; text-transform:uppercase; color:var(--ink-2); margin-bottom:8px; }
.aq-opt{ font-family:var(--mono); font-size:.75rem; letter-spacing:.08em; color:#63677A;
  text-transform:none; margin-left:8px; }
.aq-help{ font-family:var(--mono); font-size:.8125rem; line-height:1.5; color:#63677A;
  margin:0 0 8px; max-width:56ch; }

.aq-input{ display:block; width:100%; box-sizing:border-box;
  font-family:var(--sans); font-size:1rem; color:var(--ink);
  background:var(--paper); border:1px solid #7F8396; border-radius:0;
  height:52px; padding:0 14px;
  transition:border-color .16s var(--e-out), box-shadow .16s var(--e-out); }
.aq-input::placeholder{ color:#63677A; opacity:1; }
.aq-input:hover{ border-color:#63677A; }
.aq-input:focus{ outline:2px solid var(--blue-text); outline-offset:2px; border-color:#63677A; }
.aq-textarea{ height:auto; min-height:112px; padding:13px 14px; line-height:1.5; resize:vertical; }

.aq-selwrap{ position:relative; }
.aq-select{ appearance:none; -webkit-appearance:none; padding-right:42px; cursor:pointer; }
.aq-select:invalid{ color:#63677A; }
.aq-selarw{ position:absolute; right:14px; top:50%; transform:translateY(-50%);
  color:var(--ink-2); pointer-events:none; display:flex; }

.aq-input[aria-invalid="true"]{ border-left:2px solid #B42318; }
.aq-err{ font-family:var(--mono); font-size:.8125rem; line-height:1.5; color:#B42318; margin:6px 0 0; }
.aq-err[hidden]{ display:none; }

.aq-trap{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

.aq-submit{ margin-top:30px; }
.aq-submit .btn[aria-busy="true"]{ opacity:.6; cursor:default; }
.aq-submit .btn{ transition:background .18s var(--e-out), transform .18s var(--e-out), opacity .16s var(--e-out); }
.aq-status{ font-family:var(--mono); font-size:.8125rem; line-height:1.6; color:var(--ink-2);
  margin:12px 0 0; max-width:56ch; }
.aq-status:empty{ display:none; }
.aq-status.is-error{ color:#B42318; }
.aq-status a{ color:inherit; box-shadow:inset 0 -1px 0 currentColor; }
.aq-priv{ font-family:var(--mono); font-size:.8125rem; line-height:1.6; color:var(--ink-2);
  margin:14px 0 0; max-width:56ch; }
.aq-priv-link{ box-shadow:inset 0 -1px 0 var(--line-2); }
.aq-priv-link:hover{ box-shadow:inset 0 -1px 0 var(--ink-2); }

.aq-done{ align-self:start; }
.js .aq-done{ opacity:0; transform:translateY(12px);
  transition:opacity 420ms var(--e-out), transform 420ms var(--e-out); }
.js .aq-done.is-in{ opacity:1; transform:none; }
.aq-done-head{ font-size:clamp(1.9rem,4vw,2.8rem); margin:0; outline:none; }
.aq-done-body{ font-size:1.0625rem; line-height:1.55; color:var(--ink-2); max-width:56ch; margin:20px 0 0; }
.aq-done-fine{ font-family:var(--mono); font-size:.8125rem; line-height:1.6; color:var(--ink-2); margin:20px 0 0; }
.aq-done-link{ margin-top:26px; }

@media (max-width:560px){
  .aq-talkpage{ padding-top:calc(var(--navh, 134px) + 18px); }
}
@media (prefers-reduced-motion: reduce){
  .js .aq-done{ transform:none; }
}

/* ==== the platform, in real screenshots ====
   These replaced a hand-drawn imitation of the product, which among other things drew four
   algorithm bars from hardcoded widths with no axis: the same invented-number defect that was
   removed from the exposure clock. Every pixel below is the running platform on a real estate
   with every institution masked before capture. Captured at 2x and served at half, so the
   console stays sharp on a retina screen. */
.aq-shots{ display:grid; gap:clamp(72px,9vw,132px); margin-top:clamp(52px,6vw,84px); }
.aq-shot{ margin:0; min-width:0; display:grid; gap:clamp(22px,2.6vw,32px); }
.aq-shot-text{ max-width:62ch; }
.aq-shot-num{ display:block; font-family:var(--mono); font-size:.72rem; letter-spacing:.16em;
  color:var(--blue-text); margin-bottom:12px; }
.aq-shot-title{ font-size:clamp(1.4rem,2.6vw,1.9rem); font-weight:700; letter-spacing:-.025em;
  line-height:1.1; color:var(--ink); margin:0 0 12px; }
.aq-shot-desc{ font-size:16.5px; line-height:1.6; color:var(--ink-2); margin:0; }

.aq-shot-frame{ min-width:0; border:1px solid var(--line-2); border-radius:12px; overflow:hidden;
  background:var(--noir); box-shadow:0 30px 70px -34px rgba(8,11,20,.5); }
.aq-shot-chrome{ display:flex; align-items:center; gap:10px; padding:11px 16px;
  background:var(--noir-2); border-bottom:1px solid var(--noir-line); }
.aq-shot-dot{ width:9px; height:9px; border-radius:50%; background:var(--blue); flex:none; }
.aq-shot-url{ font-family:var(--mono); font-size:.72rem; letter-spacing:.04em; color:#A8ADC0; }
.aq-shot-frame img{ width:100%; height:auto; display:block; }
.aq-shot-cap{ font-family:var(--mono); font-size:14px; line-height:1.6; color:var(--ink-2); margin:2px 0 0; }

.js .aq-shot{ opacity:0; transform:translateY(20px); }
.js .aq-shot.is-in{ opacity:1; transform:none;
  transition:opacity 700ms var(--e-out), transform 700ms var(--e-out); }
@media (prefers-reduced-motion: reduce){
  .js .aq-shot{ opacity:1; transform:none; }
}

/* ==== consent ====
   The banner is the only thing on this site that can cause a third-party request, so it is
   built from the site's own tokens rather than a vendor's inline styles, and it is hidden with
   the [hidden] attribute so it is genuinely absent from the accessibility tree until shown. */
.aq-consent{ position:fixed; left:var(--gut); right:var(--gut); bottom:20px; z-index:200;
  max-width:520px; margin-inline:auto;
  background:var(--noir); color:var(--noir-ink); border:1px solid var(--noir-line);
  border-radius:6px; padding:20px 22px; box-shadow:0 24px 60px -20px rgba(8,11,20,.6); }
.aq-consent[hidden]{ display:none; }
.aq-consent-text{ font-size:15px; line-height:1.55; color:var(--noir-ink-2); margin:0 0 16px; }
.aq-consent-text a{ color:var(--blue); box-shadow:inset 0 -1px 0 var(--noir-line); }
.aq-consent-text a:hover{ box-shadow:inset 0 -1px 0 var(--blue); }
.aq-consent-row{ display:flex; gap:10px; justify-content:flex-end; flex-wrap:wrap; }
.aq-consent-btn{ font-family:var(--sans); font-size:.9375rem; font-weight:600; line-height:1;
  min-height:44px; height:44px; padding:0 20px; border-radius:100px; cursor:pointer;
  transition:background .16s var(--e-out), color .16s var(--e-out); }
.aq-consent-no{ background:transparent; color:var(--noir-ink); border:1px solid var(--noir-line); }
.aq-consent-no:hover{ border-color:var(--noir-ink); }
.aq-consent-yes{ background:#fff; color:var(--noir); border:1px solid #fff; }
.aq-consent-yes:hover{ background:var(--blue-soft); border-color:var(--blue-soft); }
.aq-consent-btn:focus-visible{ outline:2px solid var(--blue); outline-offset:3px; }
@media (max-width:620px){
  /* Measured 214px tall at 320x568, 37.7% of the screen, on top of a 134px header. Together
     they left 32% of an iPhone SE for the page itself. */
  .aq-consent{ left:10px; right:10px; bottom:10px; padding:14px 16px; }
  .aq-consent-text{ font-size:13.5px; line-height:1.45; margin:0 0 12px; }
  .aq-consent-row{ justify-content:stretch; gap:8px; }
  .aq-consent-btn{ flex:1 1 auto; min-height:44px; height:44px; font-size:.875rem; }
}

/* WCAG 2.2 SC 2.5.8: a pointer target needs 24x24 CSS px. These are inline text
   links in a legal row, so the hit area grows without the type moving. */
.foot__bot a{ display:inline-flex; align-items:center; min-height:26px; }

/* JS-gated reveal start states. These were in the base rules, so with scripts disabled the
   closing band rendered as a headline over blank space: the eyebrow, body and CTA sat at
   opacity 0 with nothing left to bring them back. */
.js .aq-talk-eyebrow, .js .aq-talk-body, .js .aq-talk-cta{ opacity:0; }
.js .aq-talk-rule{ transform:scaleX(0); }
.aq-talk-ready .aq-talk-eyebrow, .aq-talk-ready .aq-talk-body, .aq-talk-ready .aq-talk-cta{ opacity:1; }
.aq-talk-ready .aq-talk-rule{ transform:scaleX(1); }

/* The frame is a link to the full capture. A wide console cannot be made legible on a 320px
   screen by any amount of compression, so instead of pretending, the detail is one tap away. */
a.aq-shot-frame{ display:block; position:relative; text-decoration:none;
  transition:border-color .2s var(--e-out), transform .2s var(--e-out); }
a.aq-shot-frame:hover{ border-color:var(--blue-deep); }
a.aq-shot-frame:focus-visible{ outline:2px solid var(--blue-text); outline-offset:3px; }
.aq-shot-open{ position:absolute; right:14px; bottom:14px;
  font-family:var(--mono); font-size:12px; letter-spacing:.06em;
  color:var(--noir-ink); background:rgba(8,11,20,.82); border:1px solid var(--noir-line);
  border-radius:100px; padding:7px 14px; pointer-events:none; }
@media (max-width:620px){ .aq-shot-open{ right:10px; bottom:10px; font-size:11.5px; padding:6px 12px; } }

/* the row actions on /proof measured 46x20, under the SC 2.5.8 floor */
.open{ display:inline-flex; align-items:center; min-height:32px; }
