/* Archives: card grid + story modal. Uses the site's design tokens (see :root in index.html). */
.arch-hero{padding-block:56px 28px;border-bottom:0}
.arch-hero h1{max-width:16ch}
.arch-hero .lede{font-size:1.15rem;line-height:1.5;margin-top:18px;max-width:58ch;color:var(--ink-2)}
.arch-filters{display:flex;gap:8px;flex-wrap:wrap;margin-top:26px}
.arch-chip{font-family:var(--mono);font-size:.76rem;letter-spacing:.03em;color:var(--ink-2);background:var(--paper);border:1px solid var(--line-2);padding:6px 14px;border-radius:999px;cursor:pointer}
.arch-chip:hover{border-color:var(--ink)}
.arch-chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.arch-count{font-family:var(--mono);font-size:.74rem;color:var(--muted);margin-left:6px;align-self:center}

.arch-grid-sec{padding-block:20px 72px;border-bottom:0}
.arch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:30px 26px;list-style:none;margin:0;padding:0}
.arch-grid>li{min-width:0}
.arch-card{all:unset;box-sizing:border-box;display:flex;flex-direction:column;gap:12px;width:100%;height:100%;cursor:pointer}
.arch-card:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px}
.arch-thumb{position:relative;aspect-ratio:4/3;border:1px solid var(--line);background:var(--paper-2);overflow:hidden;transition:border-color .15s}
.arch-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s}
.arch-card:hover .arch-thumb{border-color:var(--ink)}
.arch-card:hover .arch-thumb img{transform:scale(1.025)}
.arch-badge{position:absolute;left:10px;top:10px;font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;background:var(--paper);color:var(--ink);border:1px solid var(--ink)}
.arch-badge.is-project{background:var(--accent);border-color:var(--accent);color:#fff}
.arch-card .eyebrow{display:block}
.arch-card h3{font-size:1.2rem;letter-spacing:-0.005em;line-height:1.18;transition:color .15s}
.arch-card:hover h3{color:var(--accent-ink)}
.arch-card p{color:var(--ink-2);font-size:.95rem;line-height:1.5}
.arch-open{font-family:var(--mono);font-size:.72rem;color:var(--accent);margin-top:auto;padding-top:2px}

/* modal */
.arch-modal{border:1px solid var(--line-2);padding:0;background:var(--paper);color:var(--ink);width:min(1040px,96vw);max-width:96vw;max-height:94vh;margin:auto;overflow:hidden;box-shadow:0 30px 80px rgba(15,16,32,.35)}
.arch-modal[open]{display:flex;flex-direction:column}
.arch-modal::backdrop{background:rgba(15,16,32,.62)}
.arch-m-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:20px 26px 16px;border-bottom:1px solid var(--line)}
.arch-m-head h2{font-size:clamp(1.35rem,3vw,1.85rem);margin-top:6px;letter-spacing:-0.01em}
.arch-m-head .sub{color:var(--ink-2);margin-top:6px;font-size:.98rem;line-height:1.45;max-width:62ch}
.arch-close{font:inherit;font-family:var(--mono);font-size:.74rem;color:var(--ink);background:none;border:1px solid var(--line-2);padding:6px 11px;cursor:pointer;flex:none}
.arch-close:hover{border-color:var(--ink)}
.arch-m-body{overflow-y:auto;padding:22px 26px 28px;flex:1 1 auto;overscroll-behavior:contain}
.arch-step-h{display:flex;gap:14px;align-items:baseline;flex-wrap:wrap}
.arch-step-h .n{font-family:var(--mono);font-size:.72rem;color:var(--accent);letter-spacing:.05em}
.arch-step-h h3{font-size:1.3rem}
.arch-text{margin-top:12px;max-width:66ch}
.arch-text p+p{margin-top:12px}
.arch-figs{display:grid;gap:14px;margin-bottom:22px;grid-template-columns:repeat(var(--cols,1),minmax(0,1fr));align-items:start}
.arch-figs.cols-5{grid-template-columns:repeat(6,minmax(0,1fr))}
.arch-figs.cols-5 figure{grid-column:span 2}
.arch-figs.cols-5 figure:nth-child(4){grid-column:2 / span 2}
.arch-figs.cols-5 figure:nth-child(5){grid-column:4 / span 2}
.arch-figs figure{margin:0;min-width:0}
.arch-figs img{width:100%;height:auto;max-height:52vh;object-fit:contain;border:1px solid var(--line);background:var(--paper-2);cursor:zoom-in;display:block}
.arch-figs figcaption{font-family:var(--mono);font-size:.72rem;line-height:1.5;color:var(--muted);margin-top:8px}
.arch-figs figcaption b{color:var(--ink);font-weight:500}
.arch-m-foot{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 26px;border-top:1px solid var(--line);background:var(--paper)}
.arch-nav{font:inherit;font-family:var(--mono);font-size:.78rem;color:var(--ink);background:none;border:1px solid var(--line-2);padding:7px 14px;cursor:pointer}
.arch-nav:hover:not([disabled]){border-color:var(--ink)}
.arch-nav.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.arch-nav.primary:hover:not([disabled]){background:var(--ink);border-color:var(--ink)}
.arch-nav[disabled]{opacity:.35;cursor:default}
.arch-dots{display:flex;gap:7px;flex-wrap:wrap;justify-content:center}
.arch-dot{all:unset;box-sizing:border-box;width:9px;height:9px;border-radius:50%;background:var(--line-2);cursor:pointer}
.arch-dot[aria-current="step"]{background:var(--accent);transform:scale(1.25)}
.arch-dot:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.arch-m-foot.single{justify-content:flex-end}
.arch-note{font-family:var(--mono);font-size:.7rem;color:var(--muted)}

.arch-split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:30px;align-items:start}
.arch-split .arch-figs{margin-bottom:0}
.arch-split .arch-figs img{max-height:60vh}
.arch-split .arch-text{margin-top:12px}

/* enlarged image */
.arch-zoom{border:0;padding:0;margin:auto;background:transparent;max-width:96vw;max-height:94vh;overflow:visible}
.arch-zoom::backdrop{background:rgba(15,16,32,.88)}
.arch-zoom img{display:block;max-width:96vw;max-height:84vh;width:auto;height:auto;background:#fff;cursor:zoom-out}
.arch-zoom p{margin:10px 0 0;font-family:var(--mono);font-size:.74rem;line-height:1.5;color:#EDE9E6;max-width:90ch}
.arch-zoom-close{position:absolute;top:-38px;right:0;font:inherit;font-family:var(--mono);font-size:.74rem;color:#fff;background:none;border:1px solid rgba(255,255,255,.5);padding:5px 10px;cursor:pointer}

@media (max-width:820px){.arch-split{grid-template-columns:minmax(0,1fr);gap:20px}.arch-split .arch-figs{margin-bottom:0}}
@media (max-width:700px){
  .arch-m-head .sub{display:none}
  .arch-m-head{padding:16px 16px 12px}
  .arch-m-body{padding:16px 16px 22px}
  .arch-m-foot{padding:10px 16px}
  .arch-figs{--cols:1 !important}
  .arch-figs.cols-5{grid-template-columns:minmax(0,1fr)}
  .arch-figs.cols-5 figure,.arch-figs.cols-5 figure:nth-child(4),.arch-figs.cols-5 figure:nth-child(5){grid-column:auto}
  .arch-dots{display:none}
  .arch-modal{max-height:96vh;width:100vw;max-width:100vw}
}
@media (prefers-reduced-motion:reduce){.arch-thumb img{transition:none}}
