/* ---------- screen ---------- */
    .pc-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:22px 0 6px}
    .pc-toggles{display:flex;flex-wrap:wrap;gap:18px;margin:14px 0 0;padding:14px 16px;border:1px solid var(--hair);border-radius:var(--r);background:var(--glass)}
    .pc-toggles label{display:flex;gap:9px;align-items:flex-start;font:500 .93rem/1.35 var(--f-body);color:var(--body);cursor:pointer;max-width:340px}
    .pc-toggles input{margin-top:2px;accent-color:var(--cyan);width:17px;height:17px;flex:none}
    .pc-toggles span small{display:block;color:var(--muted);font-weight:400;margin-top:2px}
    .pc-count{font:600 .85rem/1 var(--f-body);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}

    .pc-deck{display:grid;grid-template-columns:repeat(auto-fill,minmax(238px,1fr));gap:14px;margin-top:20px}
    .pc-card{border:1px solid var(--hair-strong);border-radius:var(--r);background:var(--panel);padding:15px 15px 13px;display:flex;flex-direction:column;gap:9px;break-inside:avoid}
    .pc-card__chip{font:600 .68rem/1 var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--bg);background:var(--cyan);border-radius:999px;padding:5px 9px;align-self:flex-start}
    .pc-card__chip[data-cat="People"]{background:var(--green)}
    .pc-card__chip[data-cat="Pathogen"]{background:#ff9a76}
    .pc-card__chip[data-cat="Belief"]{background:#c9a0ff}
    .pc-card__name{font:700 1.12rem/1.2 var(--f-head);color:var(--heading);margin:0}
    .pc-card__hint{font:400 .86rem/1.42 var(--f-body);color:var(--muted);margin:0}
    .pc-card__lines{margin:2px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:7px}
    .pc-card__lines li{font:600 .7rem/1 var(--f-body);letter-spacing:.09em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--hair);padding-bottom:11px}
    body[data-hints="off"] .pc-card__hint{display:none}
    body[data-lines="off"] .pc-card__lines{display:none}

    .pc-mat{border:1px solid var(--hair-strong);border-radius:var(--r);padding:20px;background:var(--panel);margin-top:18px}
    .pc-mat__grid{display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:stretch}
    .pc-mat__side{border:1px dashed var(--hair-strong);border-radius:var(--r);padding:14px;min-height:210px}
    .pc-mat__side h4{font:700 1rem/1.2 var(--f-head);color:var(--heading);margin:0 0 4px}
    .pc-mat__side p{font:400 .82rem/1.4 var(--f-body);color:var(--muted);margin:0}
    .pc-mat__ocean{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-width:132px;text-align:center}
    .pc-mat__arrow{font:700 1.5rem/1 var(--f-body);color:var(--cyan)}
    .pc-mat__ocean span{font:600 .7rem/1.3 var(--f-body);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
    .pc-mat__labels{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:16px}
    .pc-mat__labels div{border:1px solid var(--hair);border-radius:var(--r);padding:11px 12px}
    .pc-mat__labels strong{display:block;font:600 .7rem/1 var(--f-body);letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-bottom:9px}
    .pc-mat__rule{display:block;border-bottom:1px solid var(--hair);height:15px}

    .pc-key{width:100%;border-collapse:collapse;margin-top:14px;font:400 .86rem/1.45 var(--f-body)}
    .pc-key th,.pc-key td{border:1px solid var(--hair);padding:9px 11px;text-align:left;vertical-align:top;color:var(--body)}
    .pc-key th{font:600 .72rem/1.2 var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--heading);background:var(--glass-2)}
    .pc-key td:first-child{font-weight:600;color:var(--heading);white-space:nowrap}
    .pc-keywrap{overflow-x:auto}
    details.pc-reveal{border:1px solid var(--hair-strong);border-radius:var(--r);padding:14px 16px;background:var(--glass);margin-top:18px}
    details.pc-reveal summary{cursor:pointer;font:600 1rem/1.3 var(--f-head);color:var(--heading)}
    details.pc-reveal summary::marker{color:var(--cyan)}

    .pc-steps{counter-reset:pcstep;list-style:none;margin:16px 0 0;padding:0;display:grid;gap:12px}
    .pc-steps li{counter-increment:pcstep;position:relative;padding:13px 15px 13px 52px;border:1px solid var(--hair);border-radius:var(--r);background:var(--panel);font:400 .95rem/1.5 var(--f-body);color:var(--body)}
    .pc-steps li::before{content:counter(pcstep);position:absolute;left:15px;top:13px;font:700 1rem/1 var(--f-mark);color:var(--cyan)}
    .pc-steps strong{color:var(--heading)}

    .pc-howto{counter-reset:pchow;list-style:none;margin:18px 0 0;padding:0;display:grid;gap:11px;max-width:74ch}
    .pc-howto li{counter-increment:pchow;position:relative;padding:12px 15px 12px 48px;border:1px solid var(--hair);border-radius:var(--r);background:var(--panel);font:400 .93rem/1.5 var(--f-body);color:var(--body)}
    .pc-howto li::before{content:counter(pchow);position:absolute;left:16px;top:12px;font:700 .95rem/1 var(--f-mark);color:var(--cyan)}
    .pc-howto strong{color:var(--heading)}

    .pc-map{margin-top:18px;border:1px solid var(--hair-strong);border-radius:var(--r);overflow:hidden}
    .pc-map table{width:100%;border-collapse:collapse;font:400 .9rem/1.45 var(--f-body)}
    .pc-map th,.pc-map td{padding:10px 13px;text-align:left;vertical-align:top;border-bottom:1px solid var(--hair);color:var(--body)}
    .pc-map th{font:600 .72rem/1.2 var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--heading);background:var(--glass-2)}
    .pc-map td:first-child{color:var(--heading);font-weight:600}
    .pc-map tr:last-child td{border-bottom:0}
    .pc-map .yes{color:var(--green);font-weight:600}

    .pc-print-only{display:none}

    /* ---------- print ---------- */
    @media print{
      :root{color-scheme:light}
      html,body{background:#fff !important;color:#111 !important}
      body::before,body::after{display:none !important}
      canvas,.nav,.footer,.hl-breadcrumbs,.hl-skip,.pc-controls,.pc-toggles,.pc-noprint{display:none !important}
      .pc-print-only{display:block}
      main{padding:0 !important;margin:0 !important}
      .hl-wrap,.hl-reading{max-width:none !important;padding:0 !important;margin:0 !important}
      .pc-sheet{display:none}
      body[data-print="deck"] .pc-sheet--deck,
      body[data-print="mat"] .pc-sheet--mat,
      body[data-print="factors"] .pc-sheet--factors,
      body[data-print="key"] .pc-sheet--key,
      body[data-print="all"] .pc-sheet{display:block}
      .pc-sheet{page-break-after:always;break-after:page}
      .pc-sheet:last-child{page-break-after:auto;break-after:auto}
      .pc-sheet__head{font:700 12pt/1.3 var(--f-head);color:#111;margin:0 0 10pt;padding-bottom:5pt;border-bottom:1.5pt solid #111}
      .pc-sheet__head small{display:block;font:400 9pt/1.3 var(--f-body);color:#444;margin-top:3pt}
      .pc-deck{display:grid !important;grid-template-columns:1fr 1fr;gap:0;margin:0}
      .pc-card{border:1pt dashed #444 !important;border-radius:0 !important;background:#fff !important;padding:12pt 12pt 10pt;min-height:2.55in;gap:6pt;break-inside:avoid;page-break-inside:avoid}
      .pc-card__chip{background:#111 !important;color:#fff !important;font-size:6.5pt;padding:2.5pt 6pt}
      .pc-card__name{color:#111 !important;font-size:14pt}
      .pc-card__hint{color:#333 !important;font-size:9pt}
      .pc-card__lines li{color:#555 !important;border-bottom:.75pt solid #999;font-size:6.5pt;padding-bottom:13pt}
      .pc-mat,.pc-mat__side,.pc-mat__labels div{background:#fff !important;border-color:#333 !important}
      .pc-mat{padding:0 !important;border:0 !important;margin:0 !important}
      .pc-mat__grid{grid-template-columns:1fr 1.15in 1fr;gap:10pt}
      .pc-mat__side{min-height:4.05in;padding:10pt}
      .pc-mat__ocean{min-width:0}
      .pc-mat__ocean span{font-size:6.5pt}
      .pc-mat__arrow{font-size:20pt}
      .pc-mat__labels{grid-template-columns:1fr 1fr;gap:10pt;margin-top:10pt}
      .pc-mat__labels div{padding:8pt 10pt}
      .pc-mat__rule{height:19pt}
      .pc-mat__side h4,.pc-mat__labels strong{color:#111 !important}
      .pc-mat__side p,.pc-mat__ocean span{color:#333 !important}
      .pc-mat__arrow{color:#111 !important}
      .pc-mat__rule{border-color:#999 !important}
      .pc-key{font-size:8.5pt}
      .pc-key th{background:#eee !important;color:#111 !important}
      .pc-key th,.pc-key td{border-color:#666 !important;color:#111 !important;padding:4pt 5pt}
      .pc-key thead{display:table-header-group}
      .pc-key tr{break-inside:avoid;page-break-inside:avoid}
      .pc-keywrap{overflow:visible}
      details.pc-reveal{border:0 !important;background:#fff !important;padding:0 !important}
      details.pc-reveal summary{display:none}
      .pc-foot{font:400 8pt/1.3 var(--f-body);color:#555;margin-top:8pt}
      @page{margin:.45in}
      /* the mat prints landscape so a 3.8in card actually fits inside a placement zone */
      @page mat{size:letter landscape;margin:.45in}
      .pc-sheet--mat{page:mat}
    }

/* multi-zone mats (regional gallery, causal tiers, chain boards) */
.pc-mat__zones{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:12px}
@media print{
  .pc-mat__zones{gap:9pt}
  .pc-mat__zones .pc-mat__side{padding:8pt}
  /* zone geometry is set by how many zones the mat has, so every mat fits one landscape page */
  .pc-mat__zones[data-zones="3"]{grid-template-columns:repeat(3,1fr)}
  .pc-mat__zones[data-zones="3"] .pc-mat__side{min-height:3.6in}
  .pc-mat__zones[data-zones="4"]{grid-template-columns:repeat(4,1fr)}
  .pc-mat__zones[data-zones="4"] .pc-mat__side{min-height:3.5in}
  .pc-mat__zones[data-zones="5"]{grid-template-columns:repeat(5,1fr)}
  .pc-mat__zones[data-zones="5"] .pc-mat__side{min-height:3.4in}
  .pc-mat__zones[data-zones="6"]{grid-template-columns:repeat(3,1fr)}
  .pc-mat__zones[data-zones="6"] .pc-mat__side{min-height:2.35in}
  .pc-mat__zones[data-zones="7"]{grid-template-columns:repeat(4,1fr)}
  .pc-mat__zones[data-zones="7"] .pc-mat__side{min-height:2.1in}
  /* a 7-zone mat needs its label row on one line to stay on one landscape page */
  .pc-mat__zones[data-zones="6"] ~ .pc-mat__labels,
  .pc-mat__zones[data-zones="7"] ~ .pc-mat__labels{grid-template-columns:repeat(4,1fr)}
  .pc-mat__zones .pc-mat__side h4{font-size:10pt}
  .pc-mat__zones .pc-mat__side p{font-size:7.5pt}
}
