/* =====================================================================
   QuantDesk home v5 (2026-10-21) — visual-first landing. Prefix h-.
   Visual language follows the signed-out LiveDesk landing (dense cards,
   live-looking widgets, mono numbers, ticks, toasts). Tokens only (both
   themes). Type scale 56/40/28/20/16/14 (+ mono 12/11). Motion:
   transform + opacity only; prefers-reduced-motion = static end state.
   ===================================================================== */
.h{--h-gap:24px;--h-r:20px;--h-r-sm:12px;--h-pad:24px;
  --h-pos:var(--qd-ok);--h-neg:var(--qd-err);
  --h-fs-d:clamp(2.375rem,1.6rem + 3.1vw,3.5rem);     /* 38 → 56 */
  --h-fs-2:clamp(1.875rem,1.45rem + 1.7vw,2.5rem);    /* 30 → 40 */
  --h-fs-3:1.25rem; --h-fs-b:1rem; --h-fs-s:.875rem;
  overflow-x:clip}
.h *{min-width:0}
.h svg{display:block}
.h .mono{font-family:var(--qd-font-mono);font-variant-numeric:tabular-nums}
.h .up{color:var(--h-pos)} .h .dn{color:var(--h-neg)}

/* ---------- theme-paired screenshots ---------- */
.h .th-l{display:none}
@media (prefers-color-scheme:light){:root:not([data-theme="dark"]) .h .th-l{display:block}:root:not([data-theme="dark"]) .h .th-d{display:none}}
:root[data-theme="light"] .h .th-l{display:block}
:root[data-theme="light"] .h .th-d{display:none}

/* ---------- section rhythm + 12-col grid ---------- */
.h-sec{position:relative;padding-block:clamp(48px,5.6vw,72px)}
.h-sec--alt{background:linear-gradient(180deg,transparent,var(--qd-bg-2) 12%,var(--qd-bg-2) 88%,transparent)}
.h-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--h-gap)}
.h-c12{grid-column:span 12}.h-c8{grid-column:span 8}.h-c7{grid-column:span 7}.h-c6{grid-column:span 6}.h-c5{grid-column:span 5}.h-c4{grid-column:span 4}
@media (max-width:1023.98px){.h-c8,.h-c7,.h-c5{grid-column:span 12}}
@media (max-width:899.98px){.h-c6{grid-column:span 12}}
@media (max-width:899.98px){.h-c4{grid-column:span 12}}
.h-stack{display:grid;gap:var(--h-gap);align-content:stretch;grid-auto-rows:1fr}
.h-stack > *{height:100%}

/* ---------- section head: eyebrow · headline · one sub-line ---------- */
.h-head{max-width:760px;margin-bottom:clamp(28px,3.4vw,44px)}
.h-head--c{margin-inline:auto;text-align:center}
.h-eb{display:inline-flex;align-items:center;gap:8px;font:600 12px/1 var(--qd-font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--qd-bt-ink)}
.h-eb::before{content:"";width:18px;height:2px;border-radius:2px;background:var(--qd-grad)}
.h-head h2{margin-top:14px;font:700 var(--h-fs-2)/1.1 var(--qd-font-display);letter-spacing:-.03em;color:var(--qd-ink);text-wrap:balance}
.h-head p{margin-top:14px;font-size:1.125rem;line-height:1.55;color:var(--qd-ink-2);text-wrap:pretty}

/* ---------- card + icon tile (one icon set: 24 grid, 1.9 stroke, gradient tile) ---------- */
.h-card{position:relative;display:flex;flex-direction:column;padding:var(--h-pad);border-radius:var(--h-r);border:1px solid var(--qd-line);background:var(--qd-surface-1);box-shadow:var(--qd-shadow-1);overflow:hidden}
.h-card--flush{padding:0}
.h-card__h{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px}
.h-card__h h3{font:600 var(--h-fs-3)/1.25 var(--qd-font-display);letter-spacing:-.015em;color:var(--qd-ink)}
.h-card__h .h-ill{margin-left:auto}
.h-card__body{flex:1;display:flex;flex-direction:column;min-height:0}
.h-ic{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--qd-grad);color:var(--qd-on-grad);box-shadow:0 8px 20px -10px rgba(55,201,255,.6)}
.h-ic svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.h-ic--sm{width:32px;height:32px;border-radius:10px}.h-ic--sm svg{width:18px;height:18px}
.h-i{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}

/* ---------- small atoms ---------- */
.h-ill{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 9px;border-radius:999px;border:1px dashed var(--qd-line-2);font:600 11px/1 var(--qd-font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--qd-ink-3);white-space:nowrap}
.h-tag{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border-radius:6px;font:700 11px/1 var(--qd-font-mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border:1px solid var(--qd-line-2);color:var(--qd-ink-2);background:var(--qd-surface-2)}
.h-tag--ok{color:var(--qd-ok);border-color:var(--qd-ok-line);background:var(--qd-ok-soft)}
.h-tag--ld{color:var(--qd-ld-ink);border-color:var(--qd-ld-line);background:var(--qd-ld-soft)}
.h-tag--warn{color:var(--qd-warn);border-color:var(--qd-warn-line);background:var(--qd-warn-soft)}
.h-tag--us{color:var(--qd-us-ink);border-color:var(--qd-us-line);background:var(--qd-us-soft)}
.h-dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--qd-ok);box-shadow:0 0 0 0 var(--qd-ok-line);animation:h-ping 2.2s ease-out infinite}
@keyframes h-ping{0%{box-shadow:0 0 0 0 var(--qd-ok-line)}70%,100%{box-shadow:0 0 0 8px transparent}}
.h-chips{display:flex;flex-wrap:wrap;gap:8px}
.h-chip{display:inline-flex;align-items:center;gap:8px;min-height:32px;padding:6px 12px;border-radius:999px;border:1px solid var(--qd-line);background:var(--qd-surface-1);font:500 var(--h-fs-s)/1.2 var(--qd-font-body);color:var(--qd-ink-2)}
.h-chip b{color:var(--qd-ink);font-weight:600}
.h-chip .h-i{width:16px;height:16px;color:var(--qd-ok)}

/* ---------- window frame for real screens ---------- */
.h-win{position:relative;display:flex;flex-direction:column;border-radius:16px;border:1px solid var(--qd-line-2);background:var(--qd-surface-2);overflow:hidden;box-shadow:var(--qd-shadow-2)}
.h-win__bar{flex:none;display:flex;align-items:center;gap:6px;height:34px;padding:0 12px;border-bottom:1px solid var(--qd-line);background:var(--qd-surface-1)}
.h-win__bar i{width:10px;height:10px;border-radius:50%;background:var(--qd-line-2)}
.h-win__bar i:nth-child(1){background:#ff5f57}.h-win__bar i:nth-child(2){background:#febc2e}.h-win__bar i:nth-child(3){background:#28c840}
.h-win__bar span{margin-left:10px;font:500 12px/1 var(--qd-font-mono);color:var(--qd-ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.h-win__shot{position:relative;flex:1;overflow:hidden;background:var(--qd-surface-2)}
.h-win__shot img{display:block;width:100%;height:100%;object-fit:cover;object-position:top left}
.h-demo{position:absolute;right:10px;top:10px;height:24px;display:inline-flex;align-items:center;padding:0 10px;border-radius:6px;background:#0b1220;border:1px solid rgba(255,255,255,.22);box-shadow:0 4px 12px rgba(0,0,0,.35);color:#fff;font:700 11px/1 var(--qd-font-mono);letter-spacing:.08em}

/* =====================================================================
   HERO
   ===================================================================== */
.h-hero{position:relative;padding:clamp(32px,5vw,72px) 0 clamp(8px,1.5vw,16px);isolation:isolate}
.h-hero__aur{position:absolute;inset:-10% 0 auto;height:110%;z-index:-1;pointer-events:none;overflow:hidden}
.h-hero__aur i{position:absolute;border-radius:50%;filter:blur(70px);opacity:.22;will-change:transform}
.h-hero__aur i:nth-child(1){width:520px;height:520px;left:-120px;top:-60px;background:#00e0b8;animation:h-drift 18s ease-in-out infinite alternate}
.h-hero__aur i:nth-child(2){width:560px;height:560px;right:-160px;top:40px;background:#8b7bff;animation:h-drift 22s ease-in-out infinite alternate-reverse}
@keyframes h-drift{to{transform:translate3d(60px,40px,0) scale(1.08)}}
.h-hero__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--h-gap);align-items:center}
.h-hero__copy{grid-column:span 6}
.h-hero__vis{grid-column:span 6;position:relative;padding:50px 0 40px}
@media (max-width:1023.98px){.h-hero__copy,.h-hero__vis{grid-column:span 12}.h-hero__vis{max-width:640px;width:100%;margin-inline:auto}}
.h-pill{display:inline-flex;align-items:center;gap:10px;height:32px;padding:0 14px;border-radius:999px;border:1px solid var(--qd-bt-line);background:var(--qd-bt-soft);font:600 12px/1 var(--qd-font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--qd-bt-ink)}
.h-hero h1{margin-top:22px;font:700 var(--h-fs-d)/1.04 var(--qd-font-display);letter-spacing:-.035em;color:var(--qd-ink);text-wrap:balance}
.h-hero h1 .qd-grad-text{display:inline-block}
.h-lead{margin-top:20px;max-width:30em;font-size:1.1875rem;line-height:1.55;color:var(--qd-ink-2)}
.h-lead b{color:var(--qd-ink);font-weight:600}
.h-type{display:flex;align-items:center;gap:10px;max-width:100%;width:fit-content;min-width:min(100%,420px);height:46px;margin-top:24px;padding:0 16px;border-radius:12px;border:1px solid var(--qd-line-2);background:var(--qd-surface-1);box-shadow:var(--qd-shadow-1);font:500 14px/1 var(--qd-font-mono);color:var(--qd-ink);overflow:hidden;white-space:nowrap}
.h-type .p{color:var(--qd-bt-ink);font-weight:700}
.h-type .t{flex:1;overflow:hidden;text-overflow:clip}
.h-type .t::after{content:"";display:inline-block;width:8px;height:18px;margin-left:2px;vertical-align:-4px;border-radius:2px;background:var(--qd-bt);animation:h-blink 1s steps(1) infinite}
.h-caret{flex:none;width:8px;height:18px;border-radius:2px;background:var(--qd-bt);animation:h-blink 1s steps(1) infinite}
@keyframes h-blink{50%{opacity:0}}
.h-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.h-trust{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:18px;padding:0;list-style:none;font-size:var(--h-fs-s);color:var(--qd-ink-2)}
.h-trust li{display:inline-flex;align-items:center;gap:8px}
.h-trust li::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--qd-ok)}

/* hero card */
.h-hc{position:relative;margin:0;padding:18px;border-radius:22px;border:1px solid var(--qd-line-2);background:var(--qd-surface-1);box-shadow:var(--qd-shadow-3);font-size:13px}
.h-hc__top{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.h-hc__top b{font:600 15px/1.2 var(--qd-font-display);color:var(--qd-ink)}
.h-hc__top .h-ill{margin-left:auto}
.h-ask{display:flex;gap:10px;align-items:flex-start;margin-top:14px;padding:12px;border-radius:14px;background:var(--qd-surface-2);border:1px solid var(--qd-line)}
.h-ask__av{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--qd-ld-soft);border:1px solid var(--qd-ld-line);color:var(--qd-ld-ink);font:700 11px/1 var(--qd-font-mono)}
.h-ask p{font-size:13.5px;line-height:1.45;color:var(--qd-ink)}
.h-steps3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}
.h-s3{position:relative;display:flex;align-items:center;gap:8px;height:34px;padding:0 10px;border-radius:10px;border:1px solid var(--qd-line);background:var(--qd-surface-1);font:600 12px/1 var(--qd-font-body);color:var(--qd-ink-3);overflow:hidden}
.h-s3 i{flex:none;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;border:1.5px solid var(--qd-line-2);font-style:normal;font-size:11px;color:transparent;transition:background-color .3s,border-color .3s,color .3s}
.h-s3.is-on{color:var(--qd-ink);border-color:var(--qd-ok-line)}
.h-s3.is-on i{background:var(--qd-ok);border-color:var(--qd-ok);color:var(--qd-on-grad)}
.h-s3::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;background:var(--qd-grad);transform:scaleX(0);transform-origin:0 50%;transition:transform .9s var(--qd-ease-out)}
.h-s3.is-on::after{transform:scaleX(1)}
.h-hc__pl{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-top:16px}
.h-k{font:600 11px/1 var(--qd-font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--qd-ink-3)}
.h-big{white-space:nowrap;margin-top:6px;font:700 30px/1 var(--qd-font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.h-meta{text-align:right;font:500 12px/1.6 var(--qd-font-mono);color:var(--qd-ink-3)}
.h-meta b{color:var(--qd-ink);font-weight:600}
.h-spark{height:64px;margin-top:8px}
.h-spark svg{width:100%;height:100%;overflow:visible}
.h-spark .z{stroke:var(--qd-line-2);stroke-dasharray:3 4;stroke-width:1}
.h-spark .ln{fill:none;stroke:var(--qd-bt);stroke-width:2;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.h-spark .ar{fill:var(--qd-bt-soft);stroke:none}
.h-tbl{width:100%;margin-top:10px;border-collapse:collapse;font:500 12.5px/1 var(--qd-font-mono);font-variant-numeric:tabular-nums;color:var(--qd-ink)}
.h-tbl th{padding:0 6px 8px;text-align:right;font:600 11px/1 var(--qd-font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--qd-ink-3);border-bottom:1px solid var(--qd-line)}
.h-tbl td{padding:9px 6px;text-align:right;border-bottom:1px solid var(--qd-line-soft)}
.h-tbl th:first-child,.h-tbl td:first-child{text-align:left}
.h-tbl td b{display:inline-grid;place-items:center;width:18px;height:18px;margin-right:6px;border-radius:5px;font-size:11px;background:var(--qd-err-soft);color:var(--qd-err)}
.h-tbl tr.b td b{background:var(--qd-ok-soft);color:var(--qd-ok)}
.h-tbl td.v{transition:color .5s}
.h-log{margin-top:10px;padding:10px 12px;border-radius:12px;background:var(--qd-surface-2);border:1px solid var(--qd-line)}
.h-log ol{display:grid;gap:7px;margin:0;padding:0;list-style:none;font:500 12px/1.3 var(--qd-font-mono);color:var(--qd-ink-2)}
.h-log li{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:10px;align-items:baseline;white-space:nowrap}
.h-log li span{overflow:hidden;text-overflow:ellipsis}
.h-log time{color:var(--qd-ink-3)}
.h-log em{font-style:normal;font-weight:700;letter-spacing:.04em}
.h-log em.e{color:var(--qd-bt-ink)}.h-log em.s{color:var(--qd-warn)}.h-log em.t{color:var(--qd-ld-ink)}.h-log em.x{color:var(--qd-ok)}
.h-log li.is-new{animation:h-rowin .5s var(--qd-ease-out)}
@keyframes h-rowin{from{opacity:0;transform:translate3d(0,8px,0)}to{opacity:1;transform:none}}
.h-hc__f{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.h-hc__f span{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:8px;border:1px solid var(--qd-line);font:600 11.5px/1 var(--qd-font-mono);color:var(--qd-ink-2)}
.h-hc__f b{color:var(--qd-ok)}
/* floating toasts */
.h-float{position:absolute;z-index:2;display:flex;align-items:center;gap:10px;padding:10px 14px 10px 10px;border-radius:14px;border:1px solid var(--qd-line-2);background:var(--qd-surface-1);box-shadow:var(--qd-shadow-2);font-size:13px;max-width:290px;transition:opacity .45s var(--qd-ease-out),transform .45s var(--qd-ease-out)}
.h-float i{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--qd-ok-soft);color:var(--qd-ok);font-style:normal;font-weight:700}
.h-float b{display:block;font-weight:600;color:var(--qd-ink);line-height:1.25}
.h-float small{display:block;font-size:12px;color:var(--qd-ink-3);line-height:1.3}
.h-float.f1{top:0;left:-18px}
.h-hc__top b{padding-left:0}
.h-float.f2{bottom:0;right:-14px}
.h-float.f2 i{background:var(--qd-ld-soft);color:var(--qd-ld-ink)}
.h-float.is-out{opacity:0;transform:translate3d(0,8px,0)}
@media (max-width:640px){.h-float.f1{left:-4px}.h-float.f2{right:-4px}.h-s3{padding:0 8px;gap:6px}}

/* market sessions strip */
.h-st{display:grid;grid-template-columns:1.1fr repeat(4,minmax(0,1fr));margin-top:clamp(28px,4vw,48px);border-radius:var(--h-r);border:1px solid var(--qd-line);background:var(--qd-surface-1);box-shadow:var(--qd-shadow-1);overflow:hidden}
.h-st > div{padding:16px 18px;border-left:1px solid var(--qd-line)}
.h-st > div:first-child{border-left:0}
.h-st__k{font:600 11px/1 var(--qd-font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--qd-ink-3)}
.h-st__clk{margin-top:8px;font:700 24px/1 var(--qd-font-mono);font-variant-numeric:tabular-nums;color:var(--qd-ink)}
.h-st__s{display:flex;align-items:center;gap:8px;margin-top:8px;font:600 14px/1 var(--qd-font-body);color:var(--qd-ink-2)}
.h-st__s i{width:8px;height:8px;border-radius:50%;background:var(--qd-ink-4)}
.h-st > div.on .h-st__s{color:var(--qd-ok)}
.h-st > div.on .h-st__s i{background:var(--qd-ok);animation:h-ping 2.2s ease-out infinite}
.h-st__n{margin-top:6px;font:500 12px/1.3 var(--qd-font-mono);color:var(--qd-ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.h-st__bar{height:4px;margin-top:10px;border-radius:4px;background:var(--qd-surface-3);overflow:hidden}
.h-st__bar i{display:block;height:100%;background:var(--qd-grad);transform-origin:0 50%;transform:scaleX(0);transition:transform 1s linear}
@media (max-width:1023.98px){.h-st{grid-template-columns:repeat(2,minmax(0,1fr))}.h-st > div{border-left:0;border-top:1px solid var(--qd-line)}.h-st > div:first-child{grid-column:1/-1;border-top:0}.h-st > div:nth-child(odd):not(:first-child){border-left:1px solid var(--qd-line)}}
.h-mk{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px}
.h-mk span{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 12px;border-radius:999px;border:1px solid var(--qd-line);background:var(--qd-surface-1);font:600 12px/1 var(--qd-font-mono);color:var(--qd-ink-2)}
.h-mk span::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--qd-ld)}
.h-mk span.m::before{background:var(--qd-mcx)}.h-mk span.u::before{background:var(--qd-us)}.h-mk span.e::before{background:var(--qd-bt)}

/* =====================================================================
   CONNECT ONCE
   ===================================================================== */
.h-step{gap:0}
.h-step__n{position:absolute;top:18px;right:20px;font:700 44px/1 var(--qd-font-display);letter-spacing:-.04em;background:var(--qd-grad-text);-webkit-background-clip:text;background-clip:text;color:transparent;opacity:.9}
.h-step h3{margin-top:16px;font:600 var(--h-fs-3)/1.25 var(--qd-font-display);letter-spacing:-.015em;color:var(--qd-ink)}
.h-step__vis{flex:1;display:flex;flex-direction:column;justify-content:flex-end;gap:10px;margin-top:18px;min-height:132px}
.h-url{display:flex;align-items:center;gap:8px;width:100%;height:48px;padding:0 6px 0 14px;border-radius:12px;border:1px solid var(--qd-bt-line);background:var(--qd-bt-soft);font:600 13px/1 var(--qd-font-mono);color:var(--qd-ink);cursor:pointer;text-align:left;transition:transform .2s var(--qd-ease-out)}
.h-url:active{transform:scale(.98)}
.h-url code{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:inherit}
.h-url em{flex:none;display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;border-radius:9px;background:var(--qd-grad);color:var(--qd-on-grad);font:700 12px/1 var(--qd-font-body);font-style:normal}
.h-url.is-copied em{background:var(--qd-ok)}
.h-cl{display:flex;flex-wrap:wrap;gap:6px}
.h-cl span{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:8px;border:1px solid var(--qd-line);background:var(--qd-surface-2);font:600 12px/1 var(--qd-font-body);color:var(--qd-ink-2)}
.h-cl svg{width:14px;height:14px;fill:none;stroke:var(--qd-ld-ink);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.h-link{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:14px;border-radius:14px;border:1px solid var(--qd-line);background:var(--qd-surface-2)}
.h-link__node{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--qd-surface-1);border:1px solid var(--qd-line-2)}
.h-link__node svg{width:22px;height:22px;fill:none;stroke:var(--qd-ld-ink);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.h-link__node.q{background:var(--qd-grad);border-color:transparent;font:800 18px/1 var(--qd-font-display);color:var(--qd-on-grad)}
.h-link__wire{position:relative;height:2px;border-radius:2px;background:var(--qd-line-2);overflow:hidden}
.h-link__wire i{position:absolute;top:0;left:0;width:30%;height:100%;background:var(--qd-grad);animation:h-wire 1.6s var(--qd-ease-in-out) infinite}
@keyframes h-wire{from{transform:translateX(-100%)}to{transform:translateX(340%)}}
.h-gbtn{display:flex;align-items:center;justify-content:center;gap:10px;height:44px;border-radius:12px;border:1px solid var(--qd-line-2);background:var(--qd-surface-1);font:600 14px/1 var(--qd-font-body);color:var(--qd-ink)}
.h-gbtn .h-i{color:var(--qd-ok)}
.h-mini{display:flex;flex-direction:column;gap:8px}
.h-bub{align-self:flex-end;max-width:92%;padding:10px 12px;border-radius:14px 14px 4px 14px;background:var(--qd-ld-soft);border:1px solid var(--qd-ld-line);font-size:13px;line-height:1.4;color:var(--qd-ink)}
.h-acts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.h-acts span{display:flex;align-items:center;justify-content:center;gap:6px;height:32px;border-radius:9px;border:1px solid var(--qd-line);font:600 12px/1 var(--qd-font-body);color:var(--qd-ink-3);transition:color .3s,border-color .3s,background-color .3s}
.h-acts span.is-on{color:var(--qd-ok);border-color:var(--qd-ok-line);background:var(--qd-ok-soft)}

/* chat demo (big) */
.h-chat{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);border-radius:22px;border:1px solid var(--qd-line-2);background:var(--qd-surface-1);box-shadow:var(--qd-shadow-2);overflow:hidden}
@media (max-width:899.98px){.h-chat{grid-template-columns:minmax(0,1fr)}}
@media (max-width:479.98px){.h-act{font-size:13px;height:48px;padding:0 8px;text-align:center}}
.h-chat__l{display:flex;flex-direction:column;gap:12px;padding:20px;border-right:1px solid var(--qd-line);background:var(--qd-surface-2)}
@media (max-width:899.98px){.h-chat__l{border-right:0;border-bottom:1px solid var(--qd-line)}}
.h-chat__bar{display:flex;align-items:center;gap:10px;font:600 13px/1 var(--qd-font-body);color:var(--qd-ink)}
.h-chat__bar .h-tag{margin-left:auto}
.h-msg{display:flex;gap:10px;align-items:flex-start}
.h-msg__av{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;font:700 11px/1 var(--qd-font-mono)}
.h-msg--u{flex-direction:row-reverse}
.h-msg--u .h-msg__av{background:var(--qd-ld-soft);color:var(--qd-ld-ink);border:1px solid var(--qd-ld-line)}
.h-msg--a .h-msg__av{background:var(--qd-grad);color:var(--qd-on-grad)}
.h-msg__b{padding:11px 13px;border-radius:14px;font-size:14px;line-height:1.45;color:var(--qd-ink);background:var(--qd-surface-1);border:1px solid var(--qd-line)}
.h-msg--u .h-msg__b{border-radius:14px 4px 14px 14px;background:var(--qd-ld-soft);border-color:var(--qd-ld-line);min-height:3.4em;width:100%}
.h-msg--a .h-msg__b{border-radius:4px 14px 14px 14px}
.h-tool{display:grid;gap:6px}
.h-tool li{display:flex;align-items:center;gap:8px;height:30px;padding:0 10px;border-radius:9px;border:1px solid var(--qd-line);background:var(--qd-surface-1);font:500 12px/1 var(--qd-font-mono);color:var(--qd-ink-2);list-style:none;transition:opacity .35s,transform .35s var(--qd-ease-out)}
.h-tool li i{width:8px;height:8px;border-radius:50%;background:var(--qd-ok)}
.h-tool li.is-wait{opacity:.35}
.h-tool{margin:0;padding:0}
.h-follow{margin-top:auto;transition:opacity .4s var(--qd-ease-out),transform .4s var(--qd-ease-out)}
.h-follow.is-wait{opacity:.3;transform:translate3d(0,6px,0)}
.h-chat__r{display:flex;flex-direction:column;gap:14px;padding:20px}
.h-res__h{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.h-res__h b{font:600 15px/1.2 var(--qd-font-display);color:var(--qd-ink)}
.h-res__h .h-ill{margin-left:auto}
.h-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
@media (max-width:479.98px){.h-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.h-stat{padding:10px 12px;border-radius:12px;border:1px solid var(--qd-line);background:var(--qd-surface-2)}
.h-stat b{display:block;margin-top:6px;font:700 17px/1 var(--qd-font-mono);font-variant-numeric:tabular-nums;color:var(--qd-ink)}
.h-curve{position:relative;flex:1;min-height:170px;border-radius:12px;border:1px solid var(--qd-line);background:var(--qd-surface-1);overflow:hidden}
.h-curve > svg{position:absolute;inset:0;width:100%;height:100%}
.h-curve .ln{fill:none;stroke:url(#h-gstroke);stroke-width:2.2;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.h-curve .ar{fill:url(#h-gfill)}
.h-curve .gl{stroke:var(--qd-line);stroke-width:1;vector-effect:non-scaling-stroke}
.h-curve__mask{position:absolute;inset:0;background:var(--qd-surface-1);transform-origin:100% 50%;transform:scaleX(0)}
.h-curve.is-draw .h-curve__mask{animation:h-unmask 1.6s var(--qd-ease-in-out) forwards}
@keyframes h-unmask{from{transform:scaleX(1)}to{transform:scaleX(0)}}
.h-res__acts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.h-act{display:flex;align-items:center;justify-content:center;gap:8px;height:44px;border-radius:12px;border:1px solid var(--qd-line-2);background:var(--qd-surface-1);font:600 14px/1 var(--qd-font-body);color:var(--qd-ink-3);transition:color .35s,border-color .35s,background-color .35s,transform .35s var(--qd-ease-spring)}
.h-act .h-i{opacity:0;transition:opacity .3s}
.h-act.is-on{color:var(--qd-ink);border-color:var(--qd-ok-line);background:var(--qd-ok-soft);transform:scale(1.02)}
.h-act.is-on .h-i{opacity:1;color:var(--qd-ok)}
.h-swap{transition:opacity .35s var(--qd-ease-out)}
.h-swap.is-fade{opacity:.25}
/* prompt chip rail */
.h-rail{display:flex;align-items:center;gap:12px;margin-top:20px}
.h-rail__k{flex:none;font:600 12px/1 var(--qd-font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--qd-ink-3)}
.h-rail__s{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 2px 10px;scrollbar-width:thin;-webkit-mask-image:linear-gradient(90deg,#000 92%,transparent);mask-image:linear-gradient(90deg,#000 92%,transparent)}
.h-rail__s::-webkit-scrollbar{height:6px}.h-rail__s::-webkit-scrollbar-thumb{background:var(--qd-line-2);border-radius:6px}
.h-pc{flex:none;scroll-snap-align:start;display:inline-flex;align-items:center;gap:10px;height:44px;padding:0 8px 0 16px;border-radius:999px;border:1px solid var(--qd-line-2);background:var(--qd-surface-1);font:500 14px/1 var(--qd-font-body);color:var(--qd-ink);cursor:pointer;white-space:nowrap;transition:border-color .2s,transform .2s var(--qd-ease-out),background-color .2s}
.h-pc:hover{border-color:var(--qd-bt-line);transform:translateY(-2px)}
.h-pc em{display:inline-flex;align-items:center;height:30px;padding:0 10px;border-radius:999px;background:var(--qd-surface-2);font:600 12px/1 var(--qd-font-mono);font-style:normal;color:var(--qd-ink-2)}
.h-pc.is-on{border-color:var(--qd-bt-line);background:var(--qd-bt-soft)}
.h-pc.is-copied em{background:var(--qd-ok);color:var(--qd-on-grad)}
@media (max-width:639.98px){.h-rail{flex-direction:column;align-items:stretch;gap:8px}}

/* =====================================================================
   BUILD INSIDE (QuantDesk AI + Keyword Builder)
   ===================================================================== */
.h-ai{display:grid;grid-template-rows:auto 1fr;gap:12px;flex:1}
.h-ai__chat{display:grid;gap:8px}
.h-ai__q{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:14px;color:var(--qd-ink)}
.h-ai__q .h-ic{width:26px;height:26px;border-radius:8px;font:800 12px/1 var(--qd-font-display)}
.h-ai__opt{display:inline-flex;gap:6px}
.h-ai__opt span{display:inline-flex;align-items:center;height:28px;padding:0 10px;border-radius:999px;border:1px solid var(--qd-line-2);font:600 12px/1 var(--qd-font-body);color:var(--qd-ink-2);transition:all .3s}
.h-ai__opt span.is-on{background:var(--qd-grad);border-color:transparent;color:var(--qd-on-grad)}
.h-draft{border-radius:14px;border:1px solid var(--qd-line);background:var(--qd-surface-2);overflow:hidden}
.h-draft__h{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--qd-line);font:600 13px/1 var(--qd-font-body);color:var(--qd-ink)}
.h-draft ul{margin:0;padding:6px 14px;list-style:none}
.h-draft li{display:grid;grid-template-columns:minmax(0,1fr) auto 20px;align-items:center;gap:10px;height:36px;border-bottom:1px dashed var(--qd-line);font:500 12.5px/1 var(--qd-font-mono)}
.h-draft li:last-child{border-bottom:0}
.h-draft li span{color:var(--qd-ink-3);letter-spacing:.06em;text-transform:uppercase;font-size:11px}
.h-draft li b{color:var(--qd-ink);font-weight:600;transition:opacity .35s}
.h-draft li i{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--qd-ok);color:var(--qd-on-grad);font:700 11px/1 var(--qd-font-body);font-style:normal;transform:scale(0);transition:transform .35s var(--qd-ease-spring)}
.h-draft li.is-on i{transform:scale(1)}
.h-draft li:not(.is-on) b{opacity:.35}
.h-kwb{flex:1;min-height:300px}
.h-kwb .h-win{height:100%}
.h-twin{position:absolute;left:14px;bottom:14px;display:inline-flex;align-items:center;gap:8px;height:30px;padding:0 12px;border-radius:999px;background:var(--qd-surface-1);border:1px solid var(--qd-ok-line);box-shadow:var(--qd-shadow-2);font:600 12px/1 var(--qd-font-mono);color:var(--qd-ink)}
.h-card__foot{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}

/* =====================================================================
   LIVEDESK — engine bento (gauge + timeline) · rails · broker SL · screens
   ===================================================================== */
.h-eng{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:20px;align-items:center;flex:1}
@media (max-width:639.98px){.h-eng{grid-template-columns:minmax(0,1fr)}}
.h-gauge{position:relative;max-width:260px;width:100%;margin-inline:auto}
.h-gauge svg{width:100%;height:auto}
.h-gauge .trk{fill:none;stroke:var(--qd-surface-3);stroke-width:12;stroke-linecap:round}
.h-gauge .val{fill:none;stroke:url(#h-gstroke);stroke-width:12;stroke-linecap:round}
.h-gauge .ndl{transform-origin:130px 130px;transition:transform .9s var(--qd-ease-out)}
.h-gauge .ndl line{stroke:var(--qd-ink);stroke-width:3;stroke-linecap:round}
.h-gauge .ndl circle{fill:var(--qd-cyan)}
.h-gauge__t{position:absolute;left:0;right:0;bottom:0;text-align:center}
.h-gauge__t small{display:block;font:600 11px/1 var(--qd-font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--qd-ink-3)}
.h-gauge__t b{display:block;margin-top:6px;font:700 24px/1 var(--qd-font-display);color:var(--qd-ink)}
.h-gauge__ends{display:flex;justify-content:space-between;margin-top:-4px;font:500 12px/1 var(--qd-font-mono);color:var(--qd-ink-3)}
.h-tl{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.h-tl li{display:grid;grid-template-columns:52px minmax(0,1fr) 20px;align-items:center;gap:10px;height:44px;padding:0 14px;border-radius:12px;border:1px solid var(--qd-line);background:var(--qd-surface-1);font-size:14px;color:var(--qd-ink-2);transition:border-color .35s,background-color .35s}
.h-tl time{font:500 12px/1 var(--qd-font-mono);color:var(--qd-ink-3)}
.h-tl li span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.h-tl li b{color:var(--qd-ink);font-weight:600;margin-right:6px}
.h-tl li i{font-style:normal;font-weight:700;color:var(--qd-ok);opacity:0;transform:scale(.4);transition:opacity .3s,transform .35s var(--qd-ease-spring)}
.h-tl li.is-on{border-color:var(--qd-ok-line)}
.h-tl li.is-on i{opacity:1;transform:none}
.h-tl li.is-cur{background:var(--qd-bt-soft);border-color:var(--qd-bt-line)}
.h-rails{display:grid;gap:12px;margin-top:auto}
.h-rails > div{display:grid;grid-template-columns:72px minmax(0,1fr) 64px;align-items:center;gap:10px;font:500 12px/1 var(--qd-font-mono);color:var(--qd-ink-2)}
.h-bar{height:10px;border-radius:10px;background:var(--qd-surface-3);overflow:hidden}
.h-bar i{display:block;height:100%;border-radius:10px;background:var(--qd-ok);transform-origin:0 50%;transform:scaleX(0);transition:transform 1.2s var(--qd-ease-out)}
.h-bar.w i{background:var(--qd-warn)}
.h-rails em{font-style:normal;font-weight:700;text-align:right;color:var(--qd-ink-3);transition:color .3s}
.h-rails em.ok{color:var(--qd-ok)}
.h-shield{display:flex;align-items:center;gap:16px;margin-top:auto}
.h-shield svg{width:56px;height:64px;flex:none}
.h-shield .sh{fill:var(--qd-bt-soft);stroke:var(--qd-bt-ink);stroke-width:2}
.h-shield .ck{fill:none;stroke:var(--qd-ok);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:30;stroke-dashoffset:30;transition:stroke-dashoffset .8s var(--qd-ease-out)}
.h-shield.is-on .ck{stroke-dashoffset:0}
.h-shield__pill{display:inline-flex;align-items:center;justify-content:center;flex:1;height:36px;border-radius:999px;border:1px solid var(--qd-ok-line);background:var(--qd-ok-soft);font:700 13px/1 var(--qd-font-mono);color:var(--qd-ok)}
.h-sub{margin-top:6px;font-size:var(--h-fs-s);line-height:1.5;color:var(--qd-ink-2)}
/* screens gallery */
.h-scr{margin-top:var(--h-gap)}
.h-tabs{display:flex;gap:6px;padding:5px;width:fit-content;max-width:100%;margin:0 auto 18px;border-radius:14px;border:1px solid var(--qd-line);background:var(--qd-surface-2);overflow-x:auto;scrollbar-width:none}
.h-tabs::-webkit-scrollbar{display:none}
.h-tab{position:relative;flex:none;height:38px;padding:0 16px;border:0;border-radius:10px;background:none;font:600 14px/1 var(--qd-font-body);color:var(--qd-ink-2);cursor:pointer;overflow:hidden}
.h-tab[aria-selected="true"]{background:var(--qd-surface-1);color:var(--qd-ink);box-shadow:var(--qd-shadow-1)}
.h-tab::after{content:"";position:absolute;left:10px;right:10px;bottom:4px;height:2px;border-radius:2px;background:var(--qd-grad);transform-origin:0 50%;transform:scaleX(var(--p,0))}
.h-tab[aria-selected="false"]::after{opacity:0}
.h-scr__stage{position:relative;aspect-ratio:16/10;width:100%}
.h-scr__stage .h-win{position:absolute;inset:0;transition:opacity .6s var(--qd-ease-out),transform .6s var(--qd-ease-out)}
.h-scr__stage .h-win[hidden]{display:flex;opacity:0;transform:scale(.985);pointer-events:none;visibility:hidden}

/* =====================================================================
   RISK — P&L chart with caps + Telegram stack
   ===================================================================== */
.h-pnl{position:relative;flex:1;min-height:280px}
.h-pnl > svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.h-pnl .cap{stroke-width:1.5;stroke-dasharray:6 6;vector-effect:non-scaling-stroke}
.h-pnl .cap.p{stroke:var(--qd-ok)}.h-pnl .cap.l{stroke:var(--qd-err)}
.h-pnl .lock{fill:none;stroke:var(--qd-ld);stroke-width:2;vector-effect:non-scaling-stroke}
.h-pnl .z{stroke:var(--qd-line-2);stroke-width:1;vector-effect:non-scaling-stroke}
.h-pnl .ln{fill:none;stroke:var(--qd-bt);stroke-width:2.5;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.h-pnl .ar{fill:var(--qd-bt-soft)}
.h-pnl__lbl{position:absolute;left:10px;font:600 11px/1 var(--qd-font-mono);letter-spacing:.06em;text-transform:uppercase;padding:4px 8px;border-radius:6px;background:var(--qd-surface-1)}
.h-pnl__lbl.p{color:var(--qd-ok)}.h-pnl__lbl.l{color:var(--qd-err)}.h-pnl__lbl.k{color:var(--qd-ld-ink);left:auto;right:10px}
.h-pnl__mask{position:absolute;inset:0;background:var(--qd-surface-1);transform-origin:100% 50%;transform:scaleX(0)}
.h-pnl.is-draw .h-pnl__mask{animation:h-unmask 5.2s linear forwards}
.h-pnl__done{position:static;margin-left:auto;display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 14px;border-radius:999px;background:var(--qd-ok);color:var(--qd-on-grad);font:700 13px/1 var(--qd-font-body);box-shadow:var(--qd-shadow-2);opacity:0;transform:scale(.8);transition:opacity .35s,transform .45s var(--qd-ease-spring)}
.h-pnl__done.is-on{opacity:1;transform:none}
.h-pnl__done + .h-ill{margin-left:0}
.h-tg{display:grid;gap:10px;margin:0;padding:0;list-style:none;flex:1;align-content:start}
.h-tg li{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;border:1px solid var(--qd-line);background:var(--qd-surface-2);opacity:.28;transform:translate3d(0,6px,0);transition:opacity .5s var(--qd-ease-out),transform .5s var(--qd-ease-out),border-color .5s}
.h-tg li.is-on{opacity:1;transform:none;border-color:var(--qd-line-2)}
.h-tg li i{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--qd-ld-soft);color:var(--qd-ld-ink)}
.h-tg li i svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.h-tg b{display:block;font-size:14px;font-weight:600;color:var(--qd-ink);line-height:1.3}
.h-tg small{display:block;margin-top:2px;font-size:12.5px;color:var(--qd-ink-3)}
.h-tg time{font:500 12px/1 var(--qd-font-mono);color:var(--qd-ink-3)}

/* =====================================================================
   REPORTS — heatmap + curve · treemap · PDF
   ===================================================================== */
.h-seg{display:inline-flex;gap:4px;padding:4px;border-radius:12px;border:1px solid var(--qd-line);background:var(--qd-surface-2)}
.h-seg button{height:32px;padding:0 14px;border:0;border-radius:9px;background:none;font:600 13px/1 var(--qd-font-body);color:var(--qd-ink-2);cursor:pointer}
.h-seg button[aria-pressed="true"]{background:var(--qd-surface-1);color:var(--qd-ink);box-shadow:var(--qd-shadow-1)}
.h-heat{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px;margin-top:16px}
.h-heat i{aspect-ratio:1.25;border-radius:7px;background:var(--qd-surface-3);transition:background-color .6s,opacity .6s}
.h-heat i.p1{background:color-mix(in srgb,var(--qd-ok) 35%,var(--qd-surface-1))}.h-heat i.p2{background:color-mix(in srgb,var(--qd-ok) 65%,var(--qd-surface-1))}.h-heat i.p3{background:var(--qd-ok)}
.h-heat i.n1{background:color-mix(in srgb,var(--qd-err) 32%,var(--qd-surface-1))}.h-heat i.n2{background:color-mix(in srgb,var(--qd-err) 62%,var(--qd-surface-1))}.h-heat i.n3{background:var(--qd-err)}
.h-eq{position:relative;flex:1;min-height:120px;margin-top:16px}
.h-eq > svg{position:absolute;inset:0;width:100%;height:100%}
.h-eq .ln{fill:none;stroke:var(--qd-us);stroke-width:2;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.h-eq .ar{fill:var(--qd-us-soft)}
.h-tm{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:58px;gap:6px}
.h-tm div{display:flex;flex-direction:column;justify-content:space-between;padding:8px 10px;border-radius:9px;color:#fff;font:700 12px/1 var(--qd-font-mono);transition:background-color .6s}
.h-tm div small{font:600 11px/1 var(--qd-font-mono);opacity:.92}
.h-tm .g{background:#0f7a55}.h-tm .g2{background:#1d6b52}.h-tm .r{background:#a8364a}.h-tm .r2{background:#8c3446}.h-tm .n{background:#3a4560}
.h-tm .w2{grid-column:span 2}
.h-alert{display:flex;align-items:center;gap:12px;margin-top:12px;padding:12px 14px;border-radius:12px;border:1px solid var(--qd-warn-line);background:var(--qd-warn-soft);font-size:13px;color:var(--qd-ink)}
.h-alert i{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--qd-warn);color:#1a1003;font:800 14px/1 var(--qd-font-body);font-style:normal}
.h-alert b{font-weight:600}
.h-pdf{display:grid;grid-template-columns:120px minmax(0,1fr);gap:20px;align-items:center;flex:1}
.h-paper{position:relative;height:150px;padding:14px 12px;border-radius:8px;background:#fff;color:#0b1220;box-shadow:0 18px 40px -16px rgba(0,0,0,.45);transform:rotate(-4deg);animation:h-bob 5s ease-in-out infinite}
@keyframes h-bob{0%,100%{transform:rotate(-4deg) translate3d(0,0,0)}50%{transform:rotate(-4deg) translate3d(0,-6px,0)}}
.h-paper small{display:block;font:700 11px/1 var(--qd-font-mono);letter-spacing:.06em;color:#0a6fa8}
.h-paper b{display:block;margin-top:6px;font:700 12px/1.2 var(--qd-font-display)}
.h-paper svg{width:100%;height:40px;margin-top:8px}
.h-paper svg path{fill:none;stroke:#00a882;stroke-width:2}
.h-paper u{display:block;height:5px;margin-top:6px;border-radius:3px;background:#e1e6ef;text-decoration:none}
.h-paper u:nth-of-type(2){width:70%}
.h-paper em{position:absolute;top:-10px;right:-8px;padding:5px 7px;border-radius:6px;background:var(--qd-teal);color:#04121b;font:800 11px/1 var(--qd-font-mono);font-style:normal}
.h-pdf .h-chips{margin-top:12px}

/* =====================================================================
   BROKERS — order route + tiles
   ===================================================================== */
.h-route{display:grid;grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr) 64px minmax(0,1fr);align-items:center;gap:0;margin-bottom:var(--h-gap)}
.h-route__n{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:16px;border:1px solid var(--qd-line);background:var(--qd-surface-1);box-shadow:var(--qd-shadow-1)}
.h-route__n b{display:block;font:600 14px/1.25 var(--qd-font-body);color:var(--qd-ink)}
.h-route__n small{display:block;margin-top:3px;font:500 12px/1.2 var(--qd-font-mono);color:var(--qd-ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.h-route__w{position:relative;height:2px;margin:0 6px;background:var(--qd-line-2);border-radius:2px;overflow:hidden}
.h-route__w i{position:absolute;inset:0 auto 0 0;width:40%;background:var(--qd-grad);animation:h-wire 1.4s var(--qd-ease-in-out) infinite}
.h-route__st{transition:color .3s}
@media (max-width:899.98px){.h-route{grid-template-columns:minmax(0,1fr)}.h-route__w{width:2px;height:22px;margin:0 auto}.h-route__w i{width:100%;height:40%;animation:h-wirev 1.4s var(--qd-ease-in-out) infinite}}
@keyframes h-wirev{from{transform:translateY(-100%)}to{transform:translateY(260%)}}
.h-bks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media (max-width:899.98px){.h-bks{grid-template-columns:repeat(2,minmax(0,1fr))}}
.h-bk{position:relative;display:flex;align-items:center;gap:12px;padding:16px;border-radius:16px;border:1px solid var(--qd-line);background:var(--qd-surface-1);box-shadow:var(--qd-shadow-1);transition:border-color .4s,transform .4s var(--qd-ease-out)}
.h-bk.is-hot{border-color:var(--qd-ok-line);transform:translate3d(0,-3px,0)}
.h-bk__m{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:12px;font:800 15px/1 var(--qd-font-display);color:var(--qd-ld-ink);background:var(--qd-ld-soft);border:1px solid var(--qd-ld-line)}
.h-bk--us .h-bk__m{color:var(--qd-us-ink);background:var(--qd-us-soft);border-color:var(--qd-us-line)}
.h-bk.is-hot .h-bk__m{background:var(--qd-grad);border-color:transparent;color:var(--qd-on-grad)}
.h-bk b{display:block;font:600 15px/1.2 var(--qd-font-display);color:var(--qd-ink)}
.h-bk small{display:block;margin-top:4px;font-size:12.5px;line-height:1.3;color:var(--qd-ink-3)}
.h-bk__d{position:absolute;top:12px;right:12px;width:8px;height:8px;border-radius:50%;background:var(--qd-ok);opacity:0;transition:opacity .3s}
.h-bk.is-hot .h-bk__d{opacity:1}
.h-bk.is-hot .h-bk__d{animation:h-ping 1.4s ease-out infinite}
.h-bk--us .h-bk__d{background:var(--qd-us)}
@media (max-width:479.98px){.h-bk{padding:12px;gap:10px}.h-bk__m{width:38px;height:38px;font-size:13px}.h-bk b{font-size:14px}.h-bk small{font-size:12px}}

/* =====================================================================
   US
   ===================================================================== */
.h-ny{display:flex;flex-direction:column;flex:1;justify-content:space-between;gap:18px}
.h-ny__clk{font:700 36px/1 var(--qd-font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--qd-ink)}
.h-ny__clk small{margin-left:8px;font-size:16px;color:var(--qd-ink-3)}
.h-ny__st{display:flex;align-items:center;gap:8px;font:600 14px/1 var(--qd-font-body);color:var(--qd-ink-2)}
.h-ny__st i{width:9px;height:9px;border-radius:50%;background:var(--qd-ink-4)}
.h-ny.on .h-ny__st{color:var(--qd-ok)}.h-ny.on .h-ny__st i{background:var(--qd-ok);animation:h-ping 2.2s ease-out infinite}
.h-ny__bar{height:8px;border-radius:8px;background:var(--qd-surface-3);overflow:hidden}
.h-ny__bar i{display:block;height:100%;background:linear-gradient(90deg,var(--qd-us),var(--qd-ld));transform-origin:0 50%;transform:scaleX(0);transition:transform 1s linear}
.h-ny__ends{display:flex;justify-content:space-between;margin-top:8px;font:500 12px/1 var(--qd-font-mono);color:var(--qd-ink-3)}
.h-uspos .h-tbl{margin-top:4px}
.h-uspos__pl{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px}

/* =====================================================================
   PLANS (live catalogue — module markup is rendered by the page script)
   ===================================================================== */
.lp-pl__bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;margin-bottom:20px}
.lp-pl__mk{display:inline-flex;flex-wrap:wrap;gap:4px;padding:4px;border-radius:14px;background:var(--qd-surface-2);border:1px solid var(--qd-line)}
.lp-pl__mk button{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 14px;border:0;border-radius:10px;background:none;color:var(--qd-ink-2);font:600 14px/1 var(--qd-font-body);cursor:pointer}
.lp-pl__mk button small{font:600 11px/1 var(--qd-font-mono);color:var(--qd-ink-3)}
.lp-pl__mk button[aria-pressed="true"]{background:var(--qd-surface-1);color:var(--qd-ink);box-shadow:var(--qd-shadow-1),0 0 0 1px var(--qd-line-2)}
.lp-pl__free{display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;margin-bottom:28px;padding:14px 18px;border-radius:var(--h-r);border:1px solid var(--qd-ok-line);background:linear-gradient(110deg,var(--qd-ok-soft),transparent 62%),var(--qd-surface-1);box-shadow:var(--qd-shadow-1);font-size:14px;color:var(--qd-ink-2)}
.lp-pl__free strong{font:700 1.5rem/1 var(--qd-font-display);color:var(--qd-ink);letter-spacing:-.02em}
.lp-pl__free b{color:var(--qd-ink)}
.lp-pl__free .qd-btn{margin-left:auto}
@media (max-width:639.98px){.lp-pl__free .qd-btn{margin-left:0}}
.lp-pl__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--h-gap);align-items:stretch;padding-top:14px}
@media (max-width:899.98px){.lp-pl__grid{grid-template-columns:minmax(0,1fr);max-width:520px;margin-inline:auto}}
.lp-pc{position:relative;display:flex;flex-direction:column;min-width:0;padding:26px 24px 24px;border-radius:22px;border:1px solid var(--qd-line);background:var(--qd-surface-1);box-shadow:var(--qd-shadow-1);transition:transform .3s var(--qd-ease-out),box-shadow .3s}
.lp-pc:hover{transform:translateY(-4px);box-shadow:var(--qd-shadow-2)}
.lp-pc--hot{border-color:transparent;background:linear-gradient(var(--qd-surface-1),var(--qd-surface-1)) padding-box,var(--qd-grad) border-box;box-shadow:var(--qd-glow-ld),var(--qd-shadow-2)}
.lp-pc__badge{position:absolute;top:-13px;left:24px;height:26px;display:inline-flex;align-items:center;padding:0 12px;border-radius:999px;background:var(--qd-grad);color:var(--qd-on-grad);font:700 11px/1 var(--qd-font-mono);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.lp-pc__name{font:600 20px/1.2 var(--qd-font-display);color:var(--qd-ink)}
.lp-pc__sub{margin-top:4px;font-size:13px;color:var(--qd-ink-3)}
.lp-pc__price{margin-top:18px;font:700 clamp(2.25rem,1.8rem + 1.2vw,2.75rem)/1 var(--qd-font-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--qd-ink)}
.lp-pc__per{margin-top:6px;min-height:1.4em;font-size:13px;color:var(--qd-ink-3)}
.lp-pc__gst{margin-top:4px;font:500 12.5px/1.3 var(--qd-font-mono);color:var(--qd-ink-3)}
.lp-pc__gst b{color:var(--qd-ink);font-weight:700}
.lp-pc__list{list-style:none;margin:18px 0 20px;padding:16px 0 0;border-top:1px solid var(--qd-line);display:grid;gap:10px;font-size:14px;color:var(--qd-ink-2)}
.lp-pc__list li{position:relative;padding-left:26px;line-height:1.45}
.lp-pc__list li::before{content:"";position:absolute;left:3px;top:.32em;width:9px;height:5px;border-left:2px solid var(--qd-ok);border-bottom:2px solid var(--qd-ok);transform:rotate(-45deg)}
.lp-pc__list b{color:var(--qd-ink)}
.lp-pc .qd-btn{margin-top:auto}
.lp-pl__msg{grid-column:1/-1;padding:28px;text-align:center;border:1px dashed var(--qd-line-2);border-radius:var(--h-r);color:var(--qd-ink-2)}
.lp-pl__opt{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 16px;margin-top:22px;font-size:14px;color:var(--qd-ink-2)}
.lp-sw{position:relative;display:inline-flex;align-items:center;gap:10px;cursor:pointer;font:600 14px/1.3 var(--qd-font-body);color:var(--qd-ink)}
.lp-sw input{position:absolute;opacity:0;width:1px;height:1px}
.lp-sw span{position:relative;flex:none;width:40px;height:24px;border-radius:999px;background:var(--qd-surface-3);border:1px solid var(--qd-line-2);transition:background-color .25s}
.lp-sw span::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--qd-ink-2);transition:transform .25s var(--qd-ease-spring),background-color .25s}
.lp-sw input:checked + span{background:var(--qd-ld-soft);border-color:var(--qd-ld-line)}
.lp-sw input:checked + span::after{transform:translateX(16px);background:var(--qd-ld)}
.lp-sw input:focus-visible + span{outline:2px solid var(--qd-focus);outline-offset:2px}
.lp-pl__all{margin-top:28px;padding:18px 20px;border-radius:var(--h-r);border:1px solid var(--qd-line);background:var(--qd-surface-1)}
.lp-pl__all h3{font:600 12px/1.3 var(--qd-font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--qd-ink-3);margin-bottom:12px}
.lp-pl__rows{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.lp-pl__rows li{display:grid;grid-template-columns:96px minmax(0,1fr) 168px;align-items:center;gap:12px;font-size:13px;color:var(--qd-ink-2)}
.lp-pl__rows li b{color:var(--qd-ink);font-weight:600}
.lp-pl__rows li.is-shown b{color:var(--qd-ink)}
.lp-pl__rows li.is-shown b::after{content:" ●";font-size:9px;vertical-align:2px;color:var(--qd-ld)}
.lp-pl__bars{position:relative;height:10px;border-radius:999px;background:var(--qd-surface-2);overflow:hidden}
.lp-pl__bars i{position:absolute;inset:0 auto 0 0;border-radius:999px;background:var(--qd-grad);transform-origin:0 50%;transform:scaleX(0);transition:transform .9s var(--qd-ease-out)}
.lp-pl__rows li span:last-child{text-align:right;font:600 12.5px/1 var(--qd-font-mono);font-variant-numeric:tabular-nums;color:var(--qd-ink)}
.lp-pl__rows small{font:500 12px/1 var(--qd-font-mono);color:var(--qd-ink-3);margin-left:6px}
@media (max-width:559.98px){.lp-pl__rows li{grid-template-columns:64px minmax(0,1fr) 76px;gap:8px}.lp-pl__rows small{display:none}}
.h-plfoot{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:22px}
.h-ent{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;margin-top:22px;padding:16px 20px;border-radius:var(--h-r);border:1px solid var(--qd-line-2);background:linear-gradient(110deg,var(--qd-ld-soft),transparent 70%),var(--qd-surface-1)}
.h-ent b{font:600 17px/1.3 var(--qd-font-display);color:var(--qd-ink)}
/* PLANS-1020 blocks (kept from the live module) */
.p20[hidden]{display:none!important}
.p20{display:grid;gap:14px;margin:0 0 24px}
.p20 svg{fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.p20-mcp{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px 18px;padding:16px 18px;border-radius:var(--h-r);border:1px solid transparent;background:linear-gradient(var(--qd-surface-1),var(--qd-surface-1)) padding-box,var(--qd-grad) border-box;box-shadow:var(--qd-shadow-1)}
.p20-mcp__ic{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--qd-grad);color:var(--qd-on-grad)}
.p20-mcp__ic svg{width:22px;height:22px}
.p20-mcp__t p{margin:0;font-size:15px;line-height:1.45;color:var(--qd-ink-2)}
.p20-mcp__t b{color:var(--qd-ink);font-weight:700}
.p20-mcp__t .p20-mcp__f{margin-top:3px;font-size:13px;color:var(--qd-ink-3)}
.p20-dep{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.p20-dep li{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;border:1px solid var(--qd-ok-line);background:var(--qd-ok-soft);font:600 13px/1.25 var(--qd-font-body);color:var(--qd-ink)}
.p20-dep li.is-paid{border-color:var(--qd-mcx-line);background:var(--qd-mcx-soft)}
.p20-dep svg{flex:none;width:15px;height:15px;color:var(--qd-ok)}
.p20-dep li.is-paid svg{color:var(--qd-mcx-ink)}
@media (max-width:899.98px){.p20-mcp{grid-template-columns:auto minmax(0,1fr)}.p20-dep{grid-column:1/-1;justify-content:flex-start}}
.p20-free__h{display:inline-block;margin-right:12px;font:700 16px/1.3 var(--qd-font-display);color:var(--qd-ink)}
.p20-chips{display:inline-flex;flex-wrap:wrap;gap:6px 8px;vertical-align:middle}
.p20-chips i{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;border:1px solid var(--qd-line);background:var(--qd-surface-2);font:600 13px/1.2 var(--qd-font-body);font-style:normal;color:var(--qd-ink-2);white-space:nowrap}
.p20-chips i svg{width:15px;height:15px;color:var(--qd-ok);fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.p20-chips b{color:var(--qd-ink)}
.p20-bt{display:flex;align-items:center;gap:10px;margin:-6px 0 18px;padding:10px 12px;border-radius:12px;border:1px solid var(--qd-bt-line);background:var(--qd-bt-soft)}
.p20-bt__ic{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--qd-surface-1);color:var(--qd-bt-ink)}
.p20-bt__ic svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.p20-bt b{display:block;font-size:13px;color:var(--qd-ink)}
.p20-bt small{display:block;margin-top:2px;font:500 12px/1.3 var(--qd-font-mono);color:var(--qd-ink-3)}

/* =====================================================================
   GUIDES · FAQ · CTA
   ===================================================================== */
.h-gd{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--h-gap)}
@media (max-width:1023.98px){.h-gd{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:559.98px){.h-gd{grid-template-columns:minmax(0,1fr)}}
.h-gc{display:flex;flex-direction:column;border-radius:var(--h-r);border:1px solid var(--qd-line);background:var(--qd-surface-1);box-shadow:var(--qd-shadow-1);overflow:hidden;color:var(--qd-ink);text-decoration:none;transition:transform .3s var(--qd-ease-out),box-shadow .3s,border-color .3s}
.h-gc:hover{transform:translateY(-4px);box-shadow:var(--qd-shadow-2);border-color:var(--qd-ld-line)}
.h-gc__img{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--qd-surface-2);border-bottom:1px solid var(--qd-line)}
.h-gc__img img{display:block;width:100%;height:100%;object-fit:cover;object-position:top left;transition:transform .6s var(--qd-ease-out)}
.h-gc:hover .h-gc__img img{transform:scale(1.04)}
.h-gc__t{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;font:600 15px/1.3 var(--qd-font-display)}
.h-gc__t svg{flex:none;width:18px;height:18px;fill:none;stroke:var(--qd-ink-3);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s,stroke .3s}
.h-gc:hover .h-gc__t svg{transform:translateX(3px);stroke:var(--qd-ld-ink)}
.h-gd__cta{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:28px}
.h-faq{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--h-gap);align-items:start}
.h-faq__intro{grid-column:span 4;position:sticky;top:calc(var(--qd-header-h) + 28px)}
.h-faq__list{grid-column:span 8;display:grid;gap:10px}
@media (max-width:1023.98px){.h-faq__intro,.h-faq__list{grid-column:span 12}.h-faq__intro{position:static}}
.h-faq__intro .h-head{margin-bottom:20px}
.h-faq .qd-acc summary{font-size:16px}
.h-end{position:relative;overflow:hidden;margin-top:clamp(40px,5vw,64px);padding:clamp(32px,5vw,64px);border-radius:28px;border:1px solid var(--qd-line-2);background:radial-gradient(700px 300px at 0% 0%,rgba(0,224,184,.16),transparent 60%),radial-gradient(700px 320px at 100% 100%,rgba(139,123,255,.2),transparent 60%),var(--qd-surface-1);box-shadow:var(--qd-shadow-2);text-align:center}
.h-end h2{font:700 var(--h-fs-2)/1.1 var(--qd-font-display);letter-spacing:-.03em;color:var(--qd-ink)}
.h-end p{margin-top:12px;font-size:1.125rem;color:var(--qd-ink-2)}
.h-end .h-cta{justify-content:center;margin-top:26px}

/* ---------- reduced motion: static end states ---------- */
@media (prefers-reduced-motion:reduce){
  .h *,.h *::before,.h *::after{animation:none!important;transition:none!important}
  .h-curve__mask,.h-pnl__mask{display:none}
}
.h.is-still *{animation-play-state:paused!important}
@media (forced-colors:active){.h-card,.h-hc,.h-chat,.h-bk,.lp-pc,.h-gc,.h-win{border:1px solid CanvasText}}
@media (max-width:1180px){.h-url{height:auto;min-height:48px;padding:6px 6px 6px 12px}.h-url code{white-space:normal;word-break:break-all;line-height:1.35;font-size:12.5px}}

/* ---- review round 1 ---- */
html{background:var(--qd-bg)}
.h-acct{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;border:1px solid var(--qd-line);background:var(--qd-surface-1)}
.h-acct__av{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--qd-surface-3);font:700 13px/1 var(--qd-font-display);color:var(--qd-ink)}
.h-acct b{display:block;font-size:13px;font-weight:600;color:var(--qd-ink)}
.h-acct small{display:block;font-size:12px;color:var(--qd-ink-3)}
.h-acct .h-i{color:var(--qd-ok)}
.h-bub--a{align-self:flex-start;display:flex;align-items:center;gap:8px;border-radius:14px 14px 14px 4px;background:var(--qd-ok-soft);border-color:var(--qd-ok-line)}
.h-bub--a .h-i{color:var(--qd-ok);width:16px;height:16px}
.h-step__vis{justify-content:flex-end;min-height:168px}
.h-heatw{display:grid;grid-template-columns:34px minmax(0,1fr);gap:8px;margin-top:16px}
.h-heatw .h-heat{margin-top:0}
.h-heat__d{display:grid;grid-template-rows:repeat(5,minmax(0,1fr));gap:6px;font:500 11px/1 var(--qd-font-mono);color:var(--qd-ink-3)}
.h-heat__d span{display:flex;align-items:center}
.h-leg{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:10px;font:500 11px/1 var(--qd-font-mono);color:var(--qd-ink-3)}
.h-leg i{width:14px;height:10px;border-radius:3px;background:var(--hm-0)}
.h-leg span:first-child{margin-right:4px}.h-leg span:nth-last-child(2){margin-left:4px}
.h-leg em{margin-left:auto;font-style:normal}
.h{--hm-0:#e7ecf4;--hm-n3:#d9465b;--hm-n2:#ec8f9c;--hm-n1:#f6c9cf;--hm-p1:#bfe8d6;--hm-p2:#6cc9a1;--hm-p3:#1f9d6c}
:root[data-theme="dark"] .h{--hm-0:rgba(255,255,255,.06);--hm-n3:#c2475a;--hm-n2:#8f3a4a;--hm-n1:#5a2f3b;--hm-p1:#1e4d3e;--hm-p2:#237a5c;--hm-p3:#2fae80}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .h{--hm-0:rgba(255,255,255,.06);--hm-n3:#c2475a;--hm-n2:#8f3a4a;--hm-n1:#5a2f3b;--hm-p1:#1e4d3e;--hm-p2:#237a5c;--hm-p3:#2fae80}}
.h-heat i,.h-leg i{background:var(--hm-0)}
.h-heat i.n3,.h-leg i.n3{background:var(--hm-n3)}.h-heat i.n2,.h-leg i.n2{background:var(--hm-n2)}.h-heat i.n1,.h-leg i.n1{background:var(--hm-n1)}
.h-heat i.p1,.h-leg i.p1{background:var(--hm-p1)}.h-heat i.p2,.h-leg i.p2{background:var(--hm-p2)}.h-heat i.p3,.h-leg i.p3{background:var(--hm-p3)}
.h-pdf__h{font:600 20px/1.25 var(--qd-font-display);color:var(--qd-ink)}
.h-dl{display:grid;gap:6px;margin:12px 0 0;padding:0;list-style:none}
.h-dl li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;height:34px;padding:0 10px;border-radius:9px;border:1px solid var(--qd-line);background:var(--qd-surface-2);font:500 12.5px/1 var(--qd-font-mono);color:var(--qd-ink)}
.h-dl li .h-i{width:16px;height:16px;color:var(--qd-bt-ink)}
.h-dl em{font-style:normal;font-weight:700;font-size:11px;color:var(--qd-ink-3)}
.h-paper{height:170px}
.h-gd{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:899.98px){.h-gd{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* help-chat button: hidden over the hero, smaller on phones */
body:not(.h-past) .qdh-fab{opacity:0!important;pointer-events:none!important;transform:scale(.6)!important}
@media (max-width:640px){
  .qdh-fab{width:46px!important;height:46px!important}
  #faq{padding-bottom:88px}
  .h-mk{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;scrollbar-width:none;padding-bottom:4px;-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent)}
  .h-mk::-webkit-scrollbar{display:none}
  .h-mk span{flex:none}
  .h-log li{white-space:normal;grid-template-columns:auto auto minmax(0,1fr)}
  .h-res__acts{grid-template-columns:minmax(0,1fr)}
  .h-gd{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;padding-bottom:8px;scrollbar-width:thin}
  .h-gd > .h-gc{flex:0 0 82%;scroll-snap-align:start}
  .lp-pl__mk{flex-wrap:nowrap;overflow-x:auto;max-width:100%;scrollbar-width:none}
  .lp-pl__mk button{flex:none}
}
.h-crumb{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font:500 12px/1 var(--qd-font-mono);color:var(--qd-ink-3)}
.h-crumb span::after{content:"›";margin-left:6px;color:var(--qd-ink-4)}
.h-crumb b{padding:5px 8px;border-radius:6px;background:var(--qd-ld-soft);color:var(--qd-ld-ink);font-weight:600}
.h-step__vis{justify-content:space-between}
.h-scr__stage .h-win__shot::after{content:"";position:absolute;left:0;right:0;bottom:0;height:14%;background:linear-gradient(transparent,var(--qd-surface-2));pointer-events:none}
.h-win__shot{position:static}
.h-demo{top:5px;right:10px}
.h-dl li span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.h-eq__k{position:absolute;left:0;top:0;z-index:1;font:600 11px/1 var(--qd-font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--qd-ink-3)}
#faq{padding-bottom:40px}
@media (max-width:640px){.h-twin{display:none}body.h-busy .qdh-fab{opacity:0!important;pointer-events:none!important;transform:scale(.6)!important}#faq{padding-bottom:88px}}
.h-pnl__lbl{z-index:2}

/* =====================================================================
   HERO v2 (2026-10-21) — 4-scene story card: Describe → Backtest → Save → Live.
   Same card frame; the body swaps scene (all scenes stacked in one grid cell, so the
   body is always as tall as the tallest scene: no layout shift). Transform/opacity only
   (SVG paths for curves). JS: initHero() in qd-home.js. Reduced motion = static Live scene.
   ===================================================================== */
.h-hc.is-paused *,.h-hc.is-paused *::before,.h-hc.is-paused *::after{animation-play-state:paused!important}
.h-hc [data-h-badge]{width:132px;justify-content:center;transform-origin:50% 50%}
.h-hc [data-h-badge].is-flip{animation:h-flip .45s var(--qd-ease-out)}
@keyframes h-flip{from{opacity:0;transform:perspective(200px) rotateX(-90deg)}to{opacity:1;transform:none}}
.h-tag--bt{color:var(--qd-bt-ink);border-color:var(--qd-bt-line);background:var(--qd-bt-soft)}
/* step strip */
.h-flow{margin-top:14px}
.h-flow__p{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.h-flow__th{position:absolute;left:0;top:0;bottom:0;width:calc((100% - 18px) / 4);border-radius:10px;background:var(--qd-grad);opacity:.16;transform:translate3d(calc(var(--k,3) * (100% + 6px)),0,0);transition:transform .5s var(--qd-ease-out)}
.h-s4{position:relative;display:flex;align-items:center;justify-content:center;gap:7px;height:34px;padding:0 8px;border-radius:10px;border:1px solid var(--qd-line);font:600 12px/1 var(--qd-font-body);color:var(--qd-ink-3);white-space:nowrap;transition:color .3s,border-color .3s}
.h-s4__r{position:absolute;inset:-1px;border-radius:inherit;padding:1.5px;overflow:hidden;opacity:0;transition:opacity .3s;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
.h-s4__r span{position:absolute;left:50%;top:50%;width:160%;aspect-ratio:1;background:conic-gradient(from 0deg,transparent 0 50%,#00e0b8 70%,#37c9ff 82%,#8b7bff 94%,transparent);transform:translate(-50%,-50%) rotate(0);animation:h-ring 1.6s linear infinite}
@keyframes h-ring{to{transform:translate(-50%,-50%) rotate(360deg)}}
.h-s4 i{position:relative;flex:none;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;border:1.5px solid var(--qd-line-2);font-style:normal}
.h-s4 i > *{grid-area:1/1;text-decoration:none;font:700 11px/1 var(--qd-font-mono)}
.h-s4 i b{color:var(--qd-ink-3)}
.h-s4 i u{width:6px;height:6px;border-radius:50%;background:var(--qd-bt);opacity:0}
.h-s4 i s{color:var(--qd-on-grad);opacity:0;transform:scale(.4)}
.h-s4.is-act{color:var(--qd-ink);border-color:transparent}
.h-s4.is-act .h-s4__r{opacity:1}
.h-s4.is-act i{border-color:var(--qd-bt)}
.h-s4.is-act i b{opacity:0}
.h-s4.is-act i u{opacity:1;animation:h-pulse 1s ease-in-out infinite}
@keyframes h-pulse{50%{transform:scale(1.6);opacity:.45}}
.h-s4.is-done{color:var(--qd-ink);border-color:var(--qd-ok-line)}
.h-s4.is-done i{background:var(--qd-ok);border-color:var(--qd-ok)}
.h-s4.is-done i b{opacity:0}
.h-s4.is-done i s{opacity:1;transform:none}
.h-s4.is-pop i{animation:h-pop .45s var(--qd-ease-out)}
@keyframes h-pop{0%{transform:scale(.5)}60%{transform:scale(1.25)}100%{transform:none}}
.h-flow__bar{height:3px;margin-top:8px;border-radius:3px;background:var(--qd-line);overflow:hidden}
.h-flow__bar i{display:block;height:100%;border-radius:inherit;background:var(--qd-grad);transform-origin:0 50%;transform:scaleX(1)}
/* scene stack */
.h-sc{display:grid;margin-top:12px}
.h-scn{grid-area:1/1;display:flex;flex-direction:column;justify-content:space-between;gap:10px;min-width:0;opacity:0;visibility:hidden;transform:translate3d(18px,0,0);transition:opacity .32s var(--qd-ease-out),transform .32s var(--qd-ease-out),visibility 0s linear .32s}
.h-scn.is-was{transform:translate3d(-18px,0,0)}
.h-scn.is-on{opacity:1;visibility:visible;transform:none;transition:opacity .36s var(--qd-ease-out) .06s,transform .36s var(--qd-ease-out) .06s,visibility 0s}
.h-scn > *{margin-top:0}
/* 1 · describe */
.h-scn--ask .h-ask{margin-top:0}
.h-ask p{position:relative}
.h-ask__g{visibility:hidden}
.h-ask__t{position:absolute;inset:0}
.h-caret{display:inline-block;width:2px;height:1.05em;margin-left:2px;vertical-align:-.15em;background:var(--qd-bt);animation:h-blink .8s steps(1) infinite}
.h-parse{display:grid;gap:8px}
.h-parse__c{display:flex;flex-wrap:wrap;gap:6px}
.h-parse__c span{display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:999px;border:1px solid var(--qd-ld-line);background:var(--qd-ld-soft);color:var(--qd-ld-ink);font:600 11.5px/1 var(--qd-font-mono);white-space:nowrap;transition:opacity .25s var(--qd-ease-out),transform .25s var(--qd-ease-out)}
.h-parse__c.is-run span{opacity:0;transform:scale(.8)}
.h-parse__c.is-run span.is-on{opacity:1;transform:none}
.h-reply{display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:14px;border:1px solid var(--qd-ok-line);background:var(--qd-ok-soft);transition:opacity .3s var(--qd-ease-out),transform .3s var(--qd-ease-out)}
.h-reply__av{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--qd-surface-1);color:var(--qd-ok)}
.h-reply__av .h-i{width:16px;height:16px}
.h-reply p{font-size:13px;line-height:1.4;color:var(--qd-ink)}
.h-reply.is-wait{opacity:0;transform:translate3d(0,6px,0)}
.h-go{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;height:40px;padding:0 14px;border-radius:12px;background:var(--qd-grad);color:var(--qd-on-grad);font:700 13px/1 var(--qd-font-body);overflow:hidden;transition:transform .2s var(--qd-ease-out)}
.h-go b{display:inline-flex;align-items:center;gap:6px;font:700 11.5px/1 var(--qd-font-mono)}
.h-go .h-i{width:16px;height:16px}
.h-go::after{content:"";position:absolute;top:0;bottom:0;left:0;width:40%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);transform:translate3d(-120%,0,0)}
.h-go.is-press{transform:scale(.97)}
.h-go.is-press::after{animation:h-shine .6s var(--qd-ease-out)}
@keyframes h-shine{to{transform:translate3d(300%,0,0)}}
/* 2 · backtest */
.h-bt__h{display:flex;align-items:center;gap:8px}
.h-bt__h b{font:600 14px/1.2 var(--qd-font-display);color:var(--qd-ink)}
.h-bt__s{margin-left:auto;font:600 11px/1 var(--qd-font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--qd-ink-3);white-space:nowrap}
.h-spin{position:relative;flex:none;width:20px;height:20px}
.h-spin i,.h-spin s{position:absolute;inset:0;border-radius:50%}
.h-spin i{border:2px solid var(--qd-line-2);border-top-color:var(--qd-bt);animation:h-rot .7s linear infinite}
.h-spin s{display:grid;place-items:center;background:var(--qd-ok);color:var(--qd-on-grad);text-decoration:none;font:700 11px/1 var(--qd-font-mono);opacity:0;transform:scale(.4);transition:opacity .25s,transform .35s var(--qd-ease-out)}
.h-spin.is-ok i{opacity:0}
.h-spin.is-ok s{opacity:1;transform:none}
@keyframes h-rot{to{transform:rotate(360deg)}}
.h-bt__eq{position:relative;height:150px;border-radius:12px;border:1px solid var(--qd-line);background:var(--qd-surface-2);overflow:hidden}
.h-bt__eq svg{position:absolute;left:0;right:0;bottom:8px;top:26px;width:100%;height:calc(100% - 34px);overflow:visible}
.h-bt__eq .ln{fill:none;stroke:url(#h-gstroke);stroke-width:2.2;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.h-bt__eq .ar{fill:url(#h-gfill);stroke:none}
.h-bt__k,.h-bt__v{position:absolute;top:9px;z-index:2;font:600 11px/1 var(--qd-font-mono);letter-spacing:.06em;text-transform:uppercase}
.h-bt__k{left:10px;color:var(--qd-ink-3)}
.h-bt__v{right:10px;font-size:12.5px;letter-spacing:0;font-variant-numeric:tabular-nums}
.h-bt__cov{position:absolute;top:24px;bottom:0;left:0;width:100%;z-index:1;background:var(--qd-surface-2);transform:translate3d(100%,0,0)}
.h-bt__cov::before{content:"";position:absolute;left:-1px;top:0;bottom:0;width:2px;background:linear-gradient(transparent,#37c9ff,transparent);box-shadow:0 0 12px 2px rgba(55,201,255,.45)}
.h-bt__cov.is-done::before{opacity:0}
.h-bt__t{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.h-bt__t > div{display:grid;gap:6px;padding:9px 10px;border-radius:10px;border:1px solid var(--qd-line);background:var(--qd-surface-1)}
.h-bt__t b{font:700 18px/1 var(--qd-font-display);font-variant-numeric:tabular-nums;color:var(--qd-ink);white-space:nowrap}
.h-bt__t b.dn{color:var(--h-neg)}
.h-bt__ch{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.h-bt__lg{display:inline-flex;align-items:center;gap:5px;font:500 11px/1 var(--qd-font-mono);color:var(--qd-ink-3)}
.h-bt__lg i{width:10px;height:8px;border-radius:2px}
.h-bt__lg i.n2{background:var(--hm-n2)}.h-bt__lg i.p2{margin-left:6px;background:var(--hm-p2)}
.h-bt__hm{display:grid;grid-template-columns:repeat(31,minmax(0,1fr));grid-auto-rows:8px;gap:2px}
.h-bt__hm i{border-radius:2px;background:var(--hm-0)}
.h-bt__hm i.n3{background:var(--hm-n3)}.h-bt__hm i.n2{background:var(--hm-n2)}.h-bt__hm i.n1{background:var(--hm-n1)}
.h-bt__hm i.p1{background:var(--hm-p1)}.h-bt__hm i.p2{background:var(--hm-p2)}.h-bt__hm i.p3{background:var(--hm-p3)}
/* 3 · save */
.h-scn--sv{position:relative;justify-content:flex-start;gap:12px}
.h-sv__card{position:relative;z-index:2;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px;border-radius:14px;border:1px solid var(--qd-bt-line);background:var(--qd-surface-2);box-shadow:var(--qd-shadow-2);transform-origin:0 0}
.h-sv__card.is-fly{transition:transform .6s cubic-bezier(.55,0,.25,1),opacity .25s linear .4s}
.h-sv__card b{display:block;font:600 13.5px/1.25 var(--qd-font-display);color:var(--qd-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.h-sv__card small{display:block;margin-top:3px;font:500 11.5px/1.2 var(--qd-font-mono);color:var(--qd-ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.h-sv__btn{display:inline-flex;align-items:center;height:30px;padding:0 14px;border-radius:9px;background:var(--qd-grad);color:var(--qd-on-grad);font:700 12.5px/1 var(--qd-font-body);transition:transform .15s}
.h-sv__btn.is-press{transform:scale(.9)}
.h-sv__l{padding:10px;border-radius:14px;border:1px solid var(--qd-line);background:var(--qd-surface-2)}
.h-sv__lh{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.h-sv__n{display:grid;place-items:center;min-width:22px;height:20px;padding:0 6px;border-radius:999px;background:var(--qd-surface-3);font:700 11px/1 var(--qd-font-mono);color:var(--qd-ink-2)}
.h-sv__n.is-pop{animation:h-pop .45s var(--qd-ease-out)}
.h-sv__ol{display:grid;gap:5px;margin:0;padding:0;list-style:none}
.h-sv__ol li{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;height:34px;padding:0 10px;border-radius:10px;border:1px solid var(--qd-line);background:var(--qd-surface-1);transition:transform .45s var(--qd-ease-out),opacity .3s}
.h-sv__ol li i{display:grid;place-items:center;width:18px;height:18px;border-radius:5px;background:var(--qd-surface-3);font:700 11px/1 var(--qd-font-mono);font-style:normal;color:var(--qd-on-grad)}
.h-sv__ol li b{font:600 12.5px/1.2 var(--qd-font-body);color:var(--qd-ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.h-sv__ol li em{font:700 11px/1 var(--qd-font-mono);font-style:normal;letter-spacing:.04em;text-transform:uppercase;color:var(--qd-ink-3)}
.h-sv__ol li em.ok{color:var(--qd-ok)}
.h-sv__ol .h-sv__new{border-color:var(--qd-ok-line);background:var(--qd-ok-soft)}
.h-sv__ol .h-sv__new i{background:var(--qd-ok)}
.h-sv__ol .h-sv__new b{color:var(--qd-ink)}
.h-sv__ol .h-sv__new::after{content:"";position:absolute;inset:-1px;border-radius:inherit;border:2px solid var(--qd-ok);opacity:0}
.h-sv__ol.is-pre li:not(.h-sv__new){transform:translate3d(0,-39px,0)}
.h-sv__ol.is-pre .h-sv__new{opacity:0;transform:scale(.94)}
.h-sv__ol .h-sv__new.is-land::after{animation:h-ring2 .9s var(--qd-ease-out)}
@keyframes h-ring2{0%{opacity:.9;transform:scale(1)}100%{opacity:0;transform:scale(1.06,1.35)}}
/* describe: legs preview + save: next step */
.h-lg2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;transition:opacity .3s var(--qd-ease-out),transform .3s var(--qd-ease-out)}
.h-lg2 > div{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;height:38px;padding:0 10px;border-radius:10px;border:1px solid var(--qd-line);background:var(--qd-surface-1);font:600 12.5px/1 var(--qd-font-mono);color:var(--qd-ink)}
.h-lg2 b{display:grid;place-items:center;width:18px;height:18px;border-radius:5px;font-size:11px;background:var(--qd-err-soft);color:var(--qd-err)}
.h-lg2 span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.h-lg2 em{font-style:normal;font-size:11px;color:var(--qd-warn);white-space:nowrap}
.h-lg2.is-wait{opacity:0;transform:translate3d(0,6px,0)}
.h-sv__nx{display:flex;align-items:center;gap:8px;transition:opacity .3s var(--qd-ease-out),transform .3s var(--qd-ease-out)}
.h-sv__nx .h-k{margin-right:auto}
.h-sv__dp{display:inline-flex;align-items:center;gap:6px;font:600 12.5px/1 var(--qd-font-body);color:var(--qd-ink-2)}
.h-sv__dp .h-i{width:14px;height:14px}
.h-sv__nx.is-wait{opacity:0;transform:translate3d(0,6px,0)}
/* 4 · live */
.h-scn--lv .h-hc__pl,.h-scn--lv .h-spark,.h-scn--lv .h-tbl,.h-scn--lv .h-log{margin-top:0}
.h-scn--lv{gap:8px}
.h-tbl td.v{position:relative}
.h-tbl td.v span{position:relative}
.h-tbl td.v::before{content:"";position:absolute;inset:3px 0 3px 8px;border-radius:5px;background:var(--qd-ok-soft);opacity:0}
.h-tbl td.v.f-dn::before{background:var(--qd-err-soft)}
.h-tbl td.v.f-up::before,.h-tbl td.v.f-dn::before{animation:h-flash .6s ease-out}
.h-tbl td.v.f-up{color:var(--qd-ok)}.h-tbl td.v.f-dn{color:var(--qd-err)}
@keyframes h-flash{0%{opacity:1}100%{opacity:0}}
.h-hero .h-log ol{height:calc(3 * 1.3em + 14px);overflow:hidden}
.h-hero .h-log li{white-space:nowrap}
.h-float.f2.is-out{opacity:0;transform:translate3d(0,8px,0)}
@media (max-width:640px){
  .h-hc{padding:14px}
  .h-flow__p{gap:4px}
  .h-flow__th{width:calc((100% - 12px) / 4);transform:translate3d(calc(var(--k,3) * (100% + 4px)),0,0)}
  .h-s4{gap:4px;padding:0 4px;font-size:11px}
  .h-s4 i{width:15px;height:15px}
  .h-bt__t b{font-size:16px}
  .h-bt__t > div{padding:8px}
  .h-bt__hm{grid-auto-rows:7px}
  .h-go{height:38px}
}
@media (prefers-reduced-motion:reduce){.h-scn{transition:none}.h-s4__r span{animation:none}}
@media (min-width:641px){.h-scn--ask .h-ask{padding:14px}.h-scn--ask .h-ask p{font-size:15px;line-height:1.5}.h-lg2 > div{height:42px}}
.h-sv__card.is-back{animation:h-rowin .45s var(--qd-ease-out)}
.h-sv__btn.is-ok{background:var(--qd-ok);color:var(--qd-on-grad)}
@media (max-width:640px){.h-lg2 > div{gap:6px;padding:0 8px;font-size:12px}}
.h-bt__s{min-width:14ch;text-align:right}
