/* Stacking cards (moved from About to Manufacturing & Quality on 2026-10-08). Script: js/stack.js */
.hw{background:var(--page)}
.hw-grid{display:grid;gap:2rem}
.hw-side .eyebrow{margin-bottom:.5rem}
.hw-num{margin:0;display:flex;font:800 clamp(5rem,10vw,9rem)/1 var(--display);font-stretch:112%;letter-spacing:-.04em;color:var(--ink)}
.hw-digit{position:relative;display:inline-block;overflow:hidden;height:1em}
.hw-digit b{display:block;font-weight:inherit;transition:transform .25s var(--ease),opacity .25s}
.hw-digit b.out-up{transform:translateY(-60%);opacity:0}
.hw-digit b.in-down{transform:translateY(60%);opacity:0;transition:none}
.hw-cards{display:grid;gap:1.25rem}
.hw-card{padding:clamp(1.5rem,3vw,2.5rem);border:1px solid var(--line);border-radius:var(--btn-radius);background:var(--page-alt);transform-origin:center top}
.hw-n{margin:0 0 1.5rem;font:700 .9rem var(--display);color:var(--accent)}
.hw-t{margin:0 0 1rem;font-size:clamp(1.8rem,3.2vw,2.8rem);font-weight:800;font-stretch:112%;letter-spacing:-.025em;line-height:1.08}
.hw-b{margin:0;max-width:36rem;font-size:clamp(1.05rem,1.4vw,1.2rem);color:var(--muted)}
.hw [data-char]{display:inline-block}
@media (min-width:56rem){
  .hw-grid{grid-template-columns:4fr 8fr;gap:clamp(2rem,5vw,4rem);align-items:start}
  .hw-side{align-self:stretch}  /* full column height, so the number can stay in view (it scrolled away before) */
  .hw-sticky{position:sticky;top:calc(32vh - 25px)}
  .hw-cards{gap:0}
  .hw-card{position:sticky;top:calc(32vh - 25px);min-height:46vh;margin-bottom:22vh;display:flex;flex-direction:column;justify-content:flex-end;will-change:transform}
  .hw-card:last-child{margin-bottom:0}
  .hw-n{margin-bottom:auto}
}
@media (prefers-reduced-motion:reduce){.hw-card{position:static!important;margin-bottom:1.25rem!important}.hw-sticky{position:static}}

/* ---------- Manufacturing: the six steps as stacking photo cards (2026-10-08) ---------- */
.ps-heads{display:none}
.ps-card{padding:0;border:0;background:none}
.ps-mob{margin:0 0 1rem;font-size:clamp(1.6rem,6vw,2.2rem);line-height:1.1}
.ps-ph{margin:0;aspect-ratio:3/2;border:1px solid var(--line);border-radius:var(--btn-radius);overflow:hidden;background:#fff}
.ps-ph img{display:block;width:100%;height:100%;object-fit:cover}
@media (min-width:56rem){
  .proc-stack .hw-grid{grid-template-columns:5fr 7fr}
  .proc-stack .hw-sticky,.proc-stack .hw-card{top:calc(4.5rem + 8vh)}
  .ps-mob{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}  /* still read by screen readers */
  .ps-card{display:block;min-height:0;margin-bottom:30vh}
  .ps-ph{max-height:calc(100svh - 4.5rem - 20svh);width:100%}
  .ps-heads{display:grid;margin-top:1.5rem}
  .ps-head{grid-area:1/1;margin:0;font-size:clamp(2rem,3.4vw,3.2rem);line-height:1.06;letter-spacing:-.025em;opacity:0;transform:translateY(24px);transition:opacity .35s var(--ease),transform .45s var(--ease)}
  .ps-head.up{transform:translateY(-24px)}
  .ps-head.on{opacity:1;transform:none}
}
@media (prefers-reduced-motion:reduce){.ps-head{transition:none}}
