/* v18: Printmaking. Paper zone, brand tokens only. */
.printmaking{background:var(--paper);color:var(--ink);border-top:1px solid var(--line);padding:96px 4.15vw 110px}
.pm-head{display:grid;grid-template-columns:1fr 1fr;gap:6vw;align-items:start;margin-bottom:56px}
.pm-line{max-width:330px;margin:34px 0 0;color:var(--muted);font-size:16px}
.pm-title{display:block;font-size:15px;font-weight:600;line-height:1.3;letter-spacing:-.01em;color:var(--ink)}
.pm-medium{display:block;margin-top:3px;font-size:13px;line-height:1.35;color:var(--muted)}
.pm-head .eyebrow{margin:0 0 18px;color:var(--muted)}
.pm-head h2{font-size:clamp(2rem,3.4vw,3.4rem);line-height:1;letter-spacing:-.055em;font-weight:600;margin:0}
.pm-process,.pm-works,.pm-cta{max-width:1560px;margin-left:auto;margin-right:auto}
.pm-frame{position:relative;display:block;aspect-ratio:1/1;overflow:hidden;background:#EFEBDD}
.pm-frame img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
.pm-sn{font-variant-numeric:tabular-nums;letter-spacing:.14em;font-size:12px;color:var(--muted)}

/* Process: default is a static labelled grid (reduced motion, tablet, no script). */
.pm-ruler{display:none}
.pm-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px clamp(24px,3vw,48px)}
.pm-step figure{margin:0}
.pm-step figcaption{display:flex;align-items:baseline;gap:10px;margin-top:14px;font-size:16px;font-weight:600;letter-spacing:-.01em}
.pm-counter{display:none}

/* Process: flip-book (script adds .pm-flipbook on desktop when motion is allowed). */
@media (min-width:1001px){
  .pm-flipbook .pm-track{height:220vh;position:relative}
  .pm-flipbook .pm-sticky{position:sticky;top:0;height:100vh;display:grid;grid-template-columns:minmax(220px,360px) auto;justify-content:center;align-items:center;gap:6vw}
  .pm-flipbook .pm-ruler{display:block;--p:0;list-style:none;margin:0;padding:6px 0 6px 26px;position:relative;display:grid;gap:clamp(12px,2.4vh,22px)}
  .pm-flipbook .pm-ruler::before,.pm-flipbook .pm-ruler::after{content:"";position:absolute;left:0;top:0;width:2px}
  .pm-flipbook .pm-ruler::before{bottom:0;background:var(--line)}
  .pm-flipbook .pm-ruler::after{height:calc(var(--p) * 100%);background:var(--olive)}
  .pm-flipbook .pm-ruler li{font-size:clamp(1.25rem,2vw,1.9rem);letter-spacing:-.03em;color:var(--muted);transition:color 300ms var(--ease)}
  .pm-flipbook .pm-ruler li .pm-sn{margin-right:10px}
  .pm-flipbook .pm-ruler li.is-on{color:var(--ink);font-weight:600}
  .pm-flipbook .pm-stage{--s:min(70vh,50vw);width:var(--s);height:var(--s);position:relative}
  .pm-flipbook .pm-steps{display:block;position:relative;width:100%;height:100%}
  .pm-flipbook .pm-step{position:absolute;inset:0;opacity:0;transition:opacity 520ms var(--ease)}
  .pm-flipbook .pm-step.is-on{opacity:1}
  .pm-flipbook .pm-step figure,.pm-flipbook .pm-step .pm-frame{height:100%;width:100%}
  .pm-flipbook .pm-step .pm-frame{aspect-ratio:auto;box-shadow:0 1px 2px rgba(36,36,31,.06),0 14px 34px rgba(36,36,31,.12)}
  .pm-flipbook .pm-step figcaption{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}

/* Works */
.pm-works{list-style:none;padding:0;margin-top:clamp(56px,7vw,110px);margin-bottom:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(28px,3.4vw,60px);align-items:start}
.pm-toggle{position:relative;display:block;width:100%;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.pm-mat{display:block;padding:18px;background:#FDFBF5;border:1px solid var(--line);box-shadow:0 1px 2px rgba(36,36,31,.06),0 10px 26px rgba(36,36,31,.08)}
.pm-img-maker{opacity:0;transition:opacity 420ms var(--ease)}
.pm-card.is-maker .pm-img-maker{opacity:1}
.pm-tag{position:absolute;left:32px;bottom:14px;margin-bottom:18px;padding:6px 11px;border-radius:999px;background:rgba(36,36,31,.86);color:#F7F5EF;font-size:12px;font-weight:600;line-height:1;letter-spacing:.01em}
.pm-toggle:focus-visible{outline:none}
.pm-toggle:focus-visible .pm-mat,.pm-open:focus-visible{outline:2px solid var(--olive);outline-offset:4px}
.pm-open{display:block;width:100%;padding:16px 0 0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.pm-cta{margin-top:56px;display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;font-size:clamp(1.05rem,1.4vw,1.3rem);letter-spacing:-.02em}
.pm-cta-link{display:inline-flex;align-items:center;gap:6px;min-height:44px;border-bottom:1px solid var(--olive);font-weight:600}
@media (prefers-reduced-motion:no-preference){
  .pm-mat{transition:transform 260ms var(--ease),box-shadow 260ms var(--ease)}
  .reveal-ready .pm-work.reveal{transition-delay:calc(var(--i,0) * 70ms)}
}
@media (hover:hover) and (prefers-reduced-motion:no-preference){
  .pm-toggle:hover .pm-mat{transform:translateY(-3px);box-shadow:0 2px 4px rgba(36,36,31,.08),0 18px 38px rgba(36,36,31,.14)}
}
@media (prefers-reduced-motion:reduce){.pm-img-maker,.pm-step{transition:none}}

/* Lightbox with both images */
.pm-lb{flex:1 1 auto;min-height:0;width:min(1100px,100%);display:flex;align-items:center;justify-content:center;gap:20px}
.pm-lb figure{margin:0;flex:1 1 0;min-width:0;max-height:100%;display:flex;flex-direction:column;align-items:center;gap:8px}
.pm-lb-img{display:block;width:100%;height:auto;max-height:calc(100dvh - 210px);object-fit:contain;background:#EFEBDD;box-shadow:0 12px 40px rgba(0,0,0,.35)}
.pm-lb figcaption{font-size:13px;color:rgba(247,245,239,.8)}
.pm-lb-cap{flex:none;text-align:center}
.pm-lb-cap p{margin:0}

/* Tablet */
@media (max-width:1000px){
  .pm-works{gap:28px}
}
@media (max-width:720px){
  .printmaking{padding:64px 20px 80px}
  .pm-head{display:block;margin-bottom:34px}
  .pm-head h2{font-size:clamp(2rem,9vw,2.6rem)}
  .pm-head .pm-line{margin:12px 0 0;font-size:15px}
  .pm-steps,.pm-works{display:flex;align-items:flex-start;gap:16px;max-width:none;margin-left:-20px;margin-right:-20px;padding:0 20px 6px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding:0 20px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .pm-steps::-webkit-scrollbar,.pm-works::-webkit-scrollbar{display:none}
  .pm-step,.pm-work{flex:0 0 78vw;max-width:380px;scroll-snap-align:start}
  .reveal-ready .pm-work.reveal{opacity:1;translate:none;transition:none}
  .pm-counter{display:block;margin:16px 0 0;font-size:13px;line-height:1;letter-spacing:.06em;color:var(--muted);font-variant-numeric:tabular-nums}
  .pm-works{margin-top:56px}
  .pm-mat{padding:12px}
  .pm-tag{left:24px;margin-bottom:12px}
  .pm-cta{margin-top:36px;font-size:1.1rem}
  .pm-lb{flex-direction:column;gap:12px}
  .pm-lb-img{max-height:34dvh}
}

/* Lightbox shell (self-contained, same look as the illustration viewer) */
.pm-dialog{width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:transparent;color:var(--paper);overflow:hidden}
.pm-dialog::backdrop{background:rgba(18,18,16,.92)}
.pm-dialog[open]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:64px 20px 18px}
.pm-close{position:fixed;right:max(3vw,20px);top:20px;border:0;padding:0;background:var(--paper);color:var(--ink);width:42px;height:42px;border-radius:50%;font-size:28px;line-height:1;cursor:pointer;z-index:2}
.pm-dialog button:focus-visible{outline:2px solid var(--paper);outline-offset:3px}
.pm-lb-title{font-size:18px;font-weight:600;letter-spacing:-.02em;color:var(--paper)}
.pm-lb-medium{margin-top:2px;font-size:13px;color:rgba(247,245,239,.72)}
@media (max-width:720px){.pm-dialog[open]{padding:60px 14px 14px;gap:12px}.pm-close{right:14px;top:12px}}
