/* /portfolio — the whole record in one place: five built, seven backed. Reuses the a+ shell
   (aplus.css) for the header, footer, pill and type; only the list itself is new.
   Grouped bands rather than a filter that hides things by default: at twelve rows you can
   read the lot in five seconds, and the chips are for when the list outgrows that. */
.phero{padding:140px 40px 0;max-width:1000px}
.phero h1{margin:18px 0 0;font-size:clamp(52px,7vw,104px)}
.phero p{margin:28px 0 0;font:400 19px/1.6 'Geist',sans-serif;color:var(--grey);max-width:58ch}

.chips{display:flex;flex-wrap:wrap;gap:10px;padding:44px 40px 0}
.chip{appearance:none;background:transparent;color:var(--grey);border:1px solid var(--line);border-radius:999px;
  padding:10px 18px;font:500 14px/1 'Geist',sans-serif;cursor:pointer;display:inline-flex;align-items:baseline;gap:8px;
  transition:background .25s,color .25s,border-color .25s}
.chip:hover{border-color:var(--ink);color:var(--ink)}
.chip .ct{font-size:12px;opacity:.6;font-variant-numeric:tabular-nums}
.chip.on{background:var(--ink);border-color:var(--ink);color:#fff}
.chip.on .ct{opacity:.7}
html:not(.js) .chips{display:none}   /* they do nothing without JS, so they aren't offered */

.band{padding:56px 40px 0}
.bh{margin:0 0 20px}
.pl{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.pl li{display:grid;grid-template-columns:minmax(0,200px) 120px minmax(0,1fr) max-content;align-items:baseline;
  gap:0 36px;padding:22px 0 24px;border-bottom:1px solid var(--line);transition:padding-left .45s cubic-bezier(.16,1,.3,1)}
.pl li:hover{padding-left:14px}
.pl .n{font-family:'Archivo',system-ui,sans-serif;font-weight:500;font-variation-settings:'wdth' 84;letter-spacing:-.015em;
  font-size:clamp(22px,2.1vw,30px);line-height:1.05;justify-self:start}
.pl .r{font:500 11px/1.4 'Geist',sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--grey);justify-self:start}
.pl .d{font:400 16px/1.55 'Geist',sans-serif;color:var(--grey);max-width:60ch}
.pl .s{font:500 11px/1.4 'Geist',sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--grey);justify-self:end;white-space:nowrap}
.pl .s.win{color:var(--acc)}
.pl .s.x{color:#a9a49b}

.pcta{margin-top:110px;background:var(--acc);color:#fff;padding:140px 40px;text-align:center}
.pcta h2{margin:0;font-size:clamp(52px,8vw,120px)}
.pcta p{margin:22px auto 34px;font:400 19px/1.6 'Geist',sans-serif;max-width:46ch;color:rgba(255,255,255,.88)}
.pcta .pill{background:#fff;color:var(--ink)}
.pcta .pill:hover{background:var(--ink);color:#fff}

@media (max-width:900px){
  .pl li{grid-template-columns:minmax(0,1fr) max-content;gap:0 24px}
  .pl .r{grid-column:2;grid-row:1;justify-self:end}
  .pl .d{grid-column:1/-1;grid-row:2;margin-top:8px}
  .pl .s{grid-column:1/-1;grid-row:3;justify-self:start;margin-top:8px}
}
@media (max-width:767px){
  .phero{padding:100px 20px 0}
  .phero p{font-size:17px;margin-top:22px}
  .chips{padding:32px 20px 0}
  .band{padding:40px 20px 0}
  .pl li{padding:18px 0 20px}
  .pl li:hover{padding-left:0}
  .pl .d{font-size:15px}
  .pcta{margin-top:72px;padding:96px 20px}
}
@media (prefers-reduced-motion:reduce){ .pl li,.chip{transition:none} }
