
/* ── How hi-fi works: the chain, the parts, the setups ── */
.hx-hero .hero__name{max-width:11em;font-size:clamp(2.6rem,1.6rem + 4vw,4.75rem);line-height:1}

/* The chain: six tiles joined by a line; the controls above the streamer, the power supply under the boxes it feeds */
.hx-chain{position:relative;display:grid;gap:18px;margin-top:clamp(32px,4vw,48px)}
.hx-chain__row{position:relative;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(14px,2vw,28px);margin:0;padding:0;list-style:none}
.hx-chain__row::before{content:"";position:absolute;left:8%;right:8%;top:44px;height:2px;background:var(--hairline)}
.hx-tile{position:relative;display:grid;justify-items:center;align-content:start;gap:6px;text-align:center}
.hx-tile__i{display:grid;place-items:center;width:88px;height:88px;border:1px solid var(--hairline);border-radius:24px;background:var(--surface);color:var(--ink-2);transition:border-color 300ms var(--ease),background-color 300ms var(--ease),color 300ms var(--ease),box-shadow 300ms var(--ease)}
.hx-tile__i svg{width:34px;height:34px}
.hx-tile b{margin-top:8px;font-size:17px;line-height:24px;font-weight:600;color:var(--ink)}
.hx-tile > span:last-child{max-width:12em;font-size:14px;line-height:20px;color:var(--ink-3);text-wrap:balance}
.hx-tile.is-lit .hx-tile__i{border-color:var(--green);background:var(--green-tint);color:var(--green-hi);box-shadow:0 0 0 6px rgba(81,178,137,.08)}
.hx-chain__ctl,.hx-chain__pwr{display:flex;align-items:center;gap:12px;margin:0;padding:12px 18px;border:1px dashed rgba(255,255,255,.18);border-radius:16px;font-size:15px;line-height:22px;color:var(--ink-3)}
.hx-chain__ctl b,.hx-chain__pwr b{margin-right:8px;color:var(--ink)}
.hx-chain__ctl svg,.hx-chain__pwr svg{flex:none;width:22px;height:22px;color:var(--green-hi)}
.hx-chain__ctl{justify-self:start;margin-left:calc((100% - 5 * clamp(14px,2vw,28px)) / 6 + clamp(14px,2vw,28px))}
.hx-chain__pwr{margin-inline:calc((100% - 5 * clamp(14px,2vw,28px)) / 6 * .5)}
.hx-chain__pulse{position:absolute;left:0;top:0;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 6px rgba(81,178,137,.25);opacity:0;pointer-events:none}
.hx-replay{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-top:24px;padding:0 16px;border:1px solid var(--hairline);border-radius:999px;background:none;font:600 15px/1 var(--font);color:var(--ink-2);cursor:pointer}
.hx-replay:hover{background:rgba(255,255,255,.06);color:var(--ink)}
.hx-replay:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.hx-replay svg{width:18px;height:18px}
.hx-replay[hidden]{display:none}

/* The parts: a bar of all eight that follows your reading, then one block per part */
.hx-nav{position:sticky;top:calc(var(--gnav-h) + var(--lbar-h));z-index:20;margin:0 calc(-1 * var(--gutter)) clamp(24px,3vw,40px);padding:10px var(--gutter);background:color-mix(in srgb,var(--canvas) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--hairline)}
.hx-nav ol{display:flex;gap:6px;margin:0;padding:0;list-style:none;overflow-x:auto;scrollbar-width:none}
.hx-nav ol::-webkit-scrollbar{display:none}
.hx-nav a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border-radius:999px;font:600 15px/1 var(--font);color:var(--ink-3);text-decoration:none;white-space:nowrap;transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease)}
.hx-nav a b{font-size:12px;letter-spacing:.06em;font-variant-numeric:tabular-nums}
.hx-nav a:hover{color:var(--ink)}
.hx-nav a[aria-current="step"]{background:var(--green-tint);color:var(--ink);box-shadow:inset 0 0 0 1px rgba(81,178,137,.45)}
.hx-nav a:focus-visible{outline:2px solid var(--green);outline-offset:2px}
/* Phones and tablets: the top bar steps aside on the way down, so the bar of parts moves up under the section bar */
@media (max-width:900px){
  .hx-nav{top:calc(env(safe-area-inset-top,0px) + var(--gnav-h) + var(--lbar-h));transition:top 200ms var(--ease)}
  html.gnav-off .hx-nav{top:calc(env(safe-area-inset-top,0px) + var(--lbar-h))}
}
@media (prefers-reduced-motion:reduce){.hx-nav{transition:none}}
.hx-parts{display:grid}
.hx-part{display:grid;grid-template-columns:96px minmax(0,1fr);gap:clamp(20px,3vw,40px);padding-block:clamp(32px,4vw,48px);border-top:1px solid var(--hairline);scroll-margin-top:calc(var(--gnav-h) + var(--lbar-h) + 84px)}
.hx-part--side .hx-part__mark{border-style:dashed}
.hx-part__mark{display:grid;place-items:center;align-content:center;gap:6px;width:96px;height:96px;border:1px solid var(--hairline);border-radius:24px;background:var(--surface);color:var(--green-hi)}
.hx-part__mark span{font:600 13px/1 var(--font);letter-spacing:.08em;color:var(--ink-3)}
.hx-part__mark svg{width:32px;height:32px}
.hx-part__body{display:grid;justify-items:start;gap:10px;max-width:46em}
.hx-part h3{margin:0;font-size:clamp(1.6rem,1.3rem + 1vw,2.125rem);line-height:1.15;font-weight:600;letter-spacing:-.015em}
.hx-part__what{margin:0;font-size:19px;line-height:28px;font-weight:600;color:var(--green-hi)}
.hx-part__body > p:not(.hx-part__what){margin:0;font-size:17px;line-height:27px;color:var(--ink-2);text-wrap:pretty}
.hx-part__facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 32px;width:100%;margin:6px 0 0}
.hx-part__facts div{padding-top:12px;border-top:1px solid var(--hairline)}
.hx-part__facts dt{font:600 12px/18px var(--font);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.hx-part__facts dd{margin:4px 0 0;font-size:16px;line-height:24px;color:var(--ink)}
.hx-spk{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;width:100%;margin-top:8px}
.hx-spk__one{display:grid;align-content:start;gap:14px;margin:0;padding:18px;border:1px solid var(--hairline);border-radius:16px;background:rgba(255,255,255,.02)}
.hx-spk__art{display:block;width:100%;max-width:300px;height:auto;justify-self:center}
.hx-spk figcaption b{display:block;font-size:17px;line-height:24px;font-weight:600;color:var(--ink)}
.hx-spk figcaption span{display:block;margin-top:4px;font-size:15px;line-height:23px;color:var(--ink-2)}
@media (max-width:760px){.hx-spk{grid-template-columns:minmax(0,1fr)}}
.hx-setup__svg{display:block;width:100%;max-width:260px;height:auto}
.hx-vol{display:grid;grid-template-columns:minmax(0,180px) minmax(0,1fr) auto;align-items:center;gap:20px;width:100%;box-sizing:border-box;margin-top:8px;padding:14px 18px;border:1px solid var(--hairline);border-radius:16px;color:var(--ink);text-decoration:none;transition:border-color var(--dur) var(--ease),background-color var(--dur) var(--ease)}
.hx-vol:hover{border-color:rgba(81,178,137,.5);background:rgba(255,255,255,.03)}
.hx-vol:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.hx-vol img{display:block;width:100%;height:auto;filter:drop-shadow(0 10px 14px rgba(0,0,0,.5))}
.hx-vol b{display:block;font-size:16px;line-height:24px;font-weight:600}
.hx-vol span span{display:block;font-size:15px;line-height:22px;color:var(--ink-3)}
.hx-vol > svg{width:20px;height:20px;color:var(--green-hi)}
@media (max-width:760px){
  .hx-part{grid-template-columns:minmax(0,1fr);gap:16px}
  .hx-part__mark{width:64px;height:64px;border-radius:18px}
  .hx-part__mark svg{width:24px;height:24px}
  .hx-part__facts{grid-template-columns:minmax(0,1fr)}
  .hx-vol{grid-template-columns:minmax(0,120px) minmax(0,1fr);gap:14px}
  .hx-vol > svg{display:none}
}

/* Setups: pick a setup; brackets show which of the six parts each of its boxes does */
.hx-picks{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 clamp(24px,3vw,36px);padding:0;list-style:none}
.hx-pick{min-height:44px;padding:0 18px;border:1px solid var(--hairline);border-radius:999px;background:var(--surface);font:600 15px/1 var(--font);color:var(--ink-2);cursor:pointer;transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease)}
.hx-pick:hover{color:var(--ink);border-color:rgba(255,255,255,.28)}
.hx-pick[aria-pressed="true"]{background:var(--green-tint);border-color:var(--green);color:var(--ink)}
.hx-pick:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.hx-stage{position:relative;padding:clamp(20px,3vw,32px);border:1px solid var(--hairline);border-radius:var(--r-card);background:var(--canvas)}
.hx-mini{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none}
.hx-mini li{display:grid;justify-items:center;gap:6px;padding:12px 4px;border-radius:14px;background:var(--surface);font-size:13px;line-height:18px;font-weight:600;color:var(--ink-2);text-align:center}
.hx-mini svg{width:22px;height:22px;color:var(--ink-3)}
.hx-mini li{transition:background-color 300ms var(--ease),color 300ms var(--ease),box-shadow 300ms var(--ease)}
.hx-mini li.is-cov{background:var(--green-tint);color:var(--ink);box-shadow:inset 0 0 0 1px rgba(81,178,137,.5)}
.hx-mini li.is-cov svg{color:var(--green-hi)}
.hx-setup__boxes{position:relative;height:48px;margin-top:8px}
.hx-box{position:absolute;top:0;left:calc((100% + 8px) / 6 * var(--s));width:calc((100% + 8px) / 6 * var(--n) - 8px);height:40px;box-sizing:border-box;display:grid;place-items:center;border:2px solid var(--green);border-top:0;border-radius:0 0 14px 14px;font:600 14px/1.2 var(--font);color:var(--green-hi);text-align:center;transform-origin:top center}
.hx-setup__about{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);align-items:center;gap:clamp(20px,3vw,40px);margin-top:clamp(16px,2vw,24px)}
.hx-setup__pic{display:grid;place-items:center;margin:0;min-height:160px}
.hx-setup__img{display:block;height:auto}
.hx-setup__img--box{width:100%;filter:drop-shadow(0 14px 20px rgba(0,0,0,.55))}
.hx-setup__img--screen{width:auto;max-width:100%;max-height:220px;border-radius:12px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),0 20px 40px -20px rgba(0,0,0,.8)}
.hx-setup h3{margin:0 0 8px;font-size:clamp(1.4rem,1.2rem + .8vw,1.75rem);line-height:1.2;font-weight:600}
.hx-setup p{margin:0;max-width:40em;font-size:17px;line-height:27px;color:var(--ink-2)}
.hx-setup__after{display:flex;align-items:center;gap:8px;margin-top:12px!important;font-weight:600;color:var(--ink)!important}
.hx-setup__after svg{width:18px;height:18px;color:var(--green-hi)}
.hx-setup[hidden]{display:none}
.hx-next__ctas{display:flex;flex-wrap:wrap;gap:12px}
@media (max-width:760px){
  .hx-chain__row{grid-template-columns:minmax(0,1fr);gap:0}
  .hx-chain__row::before{left:43px;right:auto;top:44px;bottom:44px;width:2px;height:auto}
  .hx-tile{grid-template-columns:88px minmax(0,1fr);justify-items:start;align-items:center;column-gap:16px;padding-block:8px;text-align:left}
  .hx-tile__i{grid-row:1 / span 2}
  .hx-tile b{margin-top:0;align-self:end}
  .hx-tile > span:last-child{align-self:start}
  .hx-chain__ctl,.hx-chain__pwr{margin-inline:0}
  .hx-mini{grid-template-columns:repeat(3,minmax(0,1fr))}
  .hx-setup__boxes{display:none}
  .hx-setup__about{grid-template-columns:minmax(0,1fr)}
}

/* Motion: the reveal, the lit tiles and the brackets. Off with reduced motion: everything in its final state */
@media (prefers-reduced-motion:no-preference){
  .hx-js .hx-part{opacity:0;transform:translateY(16px);transition:opacity 400ms var(--ease),transform 500ms var(--ease-emph)}
  .hx-js .hx-part.is-in{opacity:1;transform:none}
  .hx-box{animation:hx-drop 400ms var(--ease-emph) both;animation-delay:calc(var(--s) * 60ms)}
  @keyframes hx-drop{from{opacity:0;transform:scaleY(.4)}}
}
