/* AP 118 — the zine. Shared stylesheet for the magazine design.
   Linked on every page after the page's own <style>, so it sets the common furniture (paper,
   type, folios, section tabs, pager) and the page keeps its own layout.

   Three sections, each with a colour used for its tab, kicker and folio:
     Museums  — blue   (--z-mus)
     Aircraft — yellow (--z-air)
     Articles — red    (--z-art)
   A page declares its section with <body data-section="museums|aircraft|articles">. */

:root{
  --z-paper:#F1EFDF; --z-paper-2:#E7E5D2; --z-paper-3:#DCD9C1;
  --z-ink:#15160F; --z-ink-2:#3A3B30; --z-ink-3:#6A6B5A;
  --z-olive:#2E3426; --z-olive-2:#3A4531;
  --z-yellow:#D9A62E; --z-red:#A8352B; --z-blue:#274B86;
  --z-rule:#B9B69C;
  --z-mus:var(--z-blue); --z-air:var(--z-yellow); --z-art:var(--z-red);
  --z-sec:var(--z-ink);
  --z-stencil:"Saira Stencil One",Impact,sans-serif;
  --z-cond:"Saira Condensed","Arial Narrow",sans-serif;
  --z-serif:Spectral,Georgia,serif;
  --z-mono:"IBM Plex Mono",ui-monospace,monospace;
  --z-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .08 0 0 0 0 .08 0 0 0 0 .05 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  --z-dots:radial-gradient(rgba(21,22,15,.16) 1px,transparent 1.3px);
  --z-wrap:1180px;
}
body[data-section="museums"]{--z-sec:var(--z-mus)}
body[data-section="aircraft"]{--z-sec:#B8862B}
body[data-section="articles"]{--z-sec:var(--z-art)}

/* ── Paper ───────────────────────────────────────────── */
html{background:var(--z-paper-2)}
body.zine{background:var(--z-paper) var(--z-grain);color:var(--z-ink);
  font-family:var(--z-serif);margin:0;-webkit-font-smoothing:antialiased}
.zine ::selection{background:var(--z-yellow);color:var(--z-ink)}
.z-wrap{max-width:var(--z-wrap);margin:0 auto;padding:0 clamp(16px,4vw,40px)}
.z-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ── Type furniture ──────────────────────────────────── */
.z-kicker{font-family:var(--z-mono);font-size:11px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--z-sec);display:flex;align-items:center;gap:12px;margin:0 0 14px}
.z-kicker::before{content:"";width:34px;height:2px;background:currentColor;flex:none}
.z-display{font-family:var(--z-stencil);font-weight:400;line-height:.86;letter-spacing:.005em;
  text-transform:uppercase;margin:0;font-size:clamp(52px,10vw,132px)}
.z-head{font-family:var(--z-cond);font-weight:700;text-transform:uppercase;line-height:.95;
  letter-spacing:.01em;margin:0}
.z-deck{font-family:var(--z-serif);font-style:italic;font-size:clamp(18px,2vw,22px);
  line-height:1.5;color:var(--z-ink-2);max-width:40em}
.z-mono{font-family:var(--z-mono)}

/* Label-maker tape: the zine's signature label */
.z-dymo{display:inline-block;font-family:var(--z-mono);font-weight:600;font-size:11px;
  letter-spacing:.2em;text-transform:uppercase;color:#F1EFDF;background:var(--z-ink);
  padding:4px 10px 3px;border-radius:2px;box-shadow:inset 0 -2px 0 rgba(255,255,255,.08),
  0 1px 0 rgba(0,0,0,.25);text-shadow:0 1px 0 rgba(0,0,0,.6)}
.z-dymo.sec{background:var(--z-sec)}
.z-dymo.mus{background:var(--z-mus)} .z-dymo.air{background:var(--z-yellow);color:var(--z-ink);text-shadow:none}
.z-dymo.art{background:var(--z-art)}

/* Rubber stamp */
.z-stamp{display:inline-block;font-family:var(--z-mono);font-size:11px;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;color:var(--z-red);border:2px solid currentColor;
  padding:5px 10px;transform:rotate(-4deg);opacity:.85;mix-blend-mode:multiply}

/* Strip of masking tape on a pasted-in picture */
.z-taped{position:relative}
.z-taped::before{content:"";position:absolute;z-index:2;top:-11px;left:50%;width:96px;height:24px;
  margin-left:-48px;background:rgba(232,220,170,.78);transform:rotate(-3deg);
  box-shadow:0 1px 2px rgba(0,0,0,.15)}
.z-taped.tl::before{left:18px;margin-left:0;transform:rotate(-24deg)}

/* A pasted-in print: white border, slight tilt, soft shadow */
.z-print{background:#FBFAF3;padding:9px 9px 30px;box-shadow:0 10px 24px rgba(21,22,15,.22),
  0 1px 2px rgba(21,22,15,.2);transform:rotate(var(--tilt,-1.5deg))}
.z-print img{display:block;width:100%;height:auto}
.z-print figcaption,.z-print .cap{font-family:var(--z-mono);font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--z-ink-3);margin-top:8px}

/* Halftone panels */
.z-halftone{background-image:var(--z-dots);background-size:6px 6px}

/* Torn-paper edge along the bottom of a dark band */
.z-torn{position:relative}
.z-torn::after{content:"";position:absolute;left:0;right:0;bottom:-13px;height:14px;
  background:inherit;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 14' preserveAspectRatio='none'%3E%3Cpath d='M0 0h120v6l-4 3-5-4-6 6-4-3-7 5-5-5-6 4-3-3-6 6-5-5-4 3-7-4-5 6-6-5-3 2-6-4-5 6-4-4-6 5-4-6-6 4-5-3-4 5-5-6v-2z'/%3E%3C/svg%3E") 0 0/240px 14px repeat-x;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 14' preserveAspectRatio='none'%3E%3Cpath d='M0 0h120v6l-4 3-5-4-6 6-4-3-7 5-5-5-6 4-3-3-6 6-5-5-4 3-7-4-5 6-6-5-3 2-6-4-5 6-4-4-6 5-4-6-6 4-5-3-4 5-5-6v-2z'/%3E%3C/svg%3E") 0 0/240px 14px repeat-x;
  z-index:3;pointer-events:none}

/* Rules */
.z-rule{border:0;border-top:2px solid var(--z-ink);margin:0}
.z-rule.dbl{border-top:4px double var(--z-ink)}
.z-rule.thin{border-top:1px solid var(--z-rule)}

/* Multi-column body copy */
.z-cols{column-width:20em;column-gap:42px;column-rule:1px solid var(--z-rule)}
.z-cols > *{break-inside:avoid-column}
.z-dropcap::first-letter{font-family:var(--z-stencil);float:left;font-size:4.6em;line-height:.8;
  padding:6px 10px 0 0;color:var(--z-sec)}
.z-pull{font-family:var(--z-cond);font-weight:700;font-size:clamp(24px,3vw,34px);line-height:1.05;
  text-transform:uppercase;border-top:4px solid var(--z-sec);border-bottom:1px solid var(--z-ink);
  padding:14px 0 16px;margin:24px 0}

/* ── Running head (top of every inner page) ───────────── */
.z-runhead{border-bottom:1px solid var(--z-ink);background:var(--z-paper)}
.z-runhead .z-wrap{display:flex;align-items:center;gap:14px;height:34px;font-family:var(--z-mono);
  font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--z-ink-3)}
.z-runhead b{color:var(--z-sec);font-weight:600}
.z-runhead .sp{flex:1}
.z-runhead a{color:inherit;text-decoration:none}
.z-runhead a:hover{color:var(--z-ink)}

/* ── Page-turn pager (bottom of every inner page) ─────── */
.z-pager{border-top:4px double var(--z-ink);margin-top:56px;background:var(--z-paper)}
.z-pager .z-wrap{display:grid;grid-template-columns:1fr auto 1fr;align-items:stretch;gap:0}
.z-pager a{display:flex;flex-direction:column;gap:4px;padding:22px 0;text-decoration:none;color:var(--z-ink)}
.z-pager a:hover .t{color:var(--z-sec)}
.z-pager .nx{text-align:right;align-items:flex-end}
.z-pager .k{font-family:var(--z-mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--z-ink-3)}
.z-pager .t{font-family:var(--z-cond);font-weight:700;font-size:clamp(17px,2.2vw,22px);text-transform:uppercase;line-height:1.05}
.z-pager .mid{display:flex;align-items:center;justify-content:center;padding:0 22px;
  font-family:var(--z-stencil);font-size:28px;color:var(--z-sec);border-left:1px solid var(--z-rule);
  border-right:1px solid var(--z-rule);margin:14px 22px;min-width:3ch}
@media (max-width:620px){
  .z-pager .z-wrap{grid-template-columns:1fr 1fr}
  .z-pager .mid{display:none}
}

/* ── Thumb index: section tabs on the right edge, like a reference book ── */
.z-thumbs{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:1200;display:flex;
  flex-direction:column;gap:3px}
.z-thumbs a{display:block;writing-mode:vertical-rl;font-family:var(--z-mono);font-size:10px;font-weight:600;
  letter-spacing:.24em;text-transform:uppercase;text-decoration:none;color:#F1EFDF;
  padding:16px 7px;border-radius:5px 0 0 5px;transform:translateX(5px);
  box-shadow:-2px 2px 6px rgba(21,22,15,.25);transition:transform .15s ease}
.z-thumbs a:hover,.z-thumbs a:focus-visible{transform:translateX(0)}
.z-thumbs a.on{transform:translateX(0);padding-right:12px}
.z-thumbs .mus{background:var(--z-mus)} .z-thumbs .air{background:var(--z-yellow);color:var(--z-ink)}
.z-thumbs .art{background:var(--z-art)}
@media (max-width:900px){.z-thumbs{display:none}}
@media (prefers-reduced-motion:reduce){.z-thumbs a{transition:none}}

/* ── Contents-page entries (cards) ───────────────────── */
.z-entry{display:grid;grid-template-columns:auto 1fr;gap:4px 16px;padding:16px 0;
  border-top:1px solid var(--z-rule);text-decoration:none;color:var(--z-ink)}
.z-entry .pg{grid-row:span 3;font-family:var(--z-stencil);font-size:34px;line-height:.9;color:var(--z-sec);min-width:2.2ch}
.z-entry .k{font-family:var(--z-mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--z-ink-3)}
.z-entry .t{font-family:var(--z-cond);font-weight:700;font-size:22px;text-transform:uppercase;line-height:1}
.z-entry .d{font-size:15px;line-height:1.45;color:var(--z-ink-2)}
.z-entry:hover .t{color:var(--z-sec)}

/* Article / feature card with a picture */
.z-card{display:flex;flex-direction:column;text-decoration:none;color:var(--z-ink);background:#FBFAF3;
  border:1px solid var(--z-ink);box-shadow:4px 4px 0 var(--z-ink);transition:transform .12s ease,box-shadow .12s ease}
.z-card:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--z-sec)}
.z-card.ext .k::after{content:" \2197";letter-spacing:0}
.z-card .pic{aspect-ratio:16/10;overflow:hidden;background:var(--z-paper-3);border-bottom:1px solid var(--z-ink)}
.z-card .pic img{width:100%;height:100%;object-fit:cover;display:block}
.z-card .pic.contain img{object-fit:contain;padding:8% 6%}
.z-card .body{padding:14px 16px 18px;display:flex;flex-direction:column;gap:7px}
.z-card .k{font-family:var(--z-mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--z-sec)}
.z-card .t{font-family:var(--z-cond);font-weight:700;font-size:23px;text-transform:uppercase;line-height:.98}
.z-card .d{font-size:15px;line-height:1.45;color:var(--z-ink-2)}
@media (prefers-reduced-motion:reduce){.z-card{transition:none}}

/* ── Colophon footer ─────────────────────────────────── */
.z-colophon{background:var(--z-ink);color:#C9CFB1;font-family:var(--z-mono);font-size:11px;
  letter-spacing:.08em;line-height:1.8;padding:44px 0 56px}
.z-colophon .z-wrap{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:32px}
.z-colophon h3{font-family:var(--z-mono);font-size:10px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--z-yellow);margin:0 0 10px;font-weight:600}
.z-colophon a{color:#E7E5D2;text-decoration:none;display:block}
.z-colophon a:hover{color:var(--z-yellow)}
.z-colophon .np{font-family:var(--z-stencil);font-size:30px;color:#F1EFDF;letter-spacing:.02em;line-height:1}
.z-colophon p{margin:10px 0 0;max-width:34em}
@media (max-width:760px){.z-colophon .z-wrap{grid-template-columns:1fr 1fr}.z-colophon .z-wrap>:first-child{grid-column:1/-1}}

/* Focus */
.zine a:focus-visible,.zine button:focus-visible{outline:3px solid var(--z-yellow);outline-offset:2px}

/* ── Section opener (section fronts) ─────────────────── */
.z-opener{border-bottom:4px double var(--z-ink);padding:44px 0 50px;overflow:hidden}
.z-opener-in{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:40px;align-items:center}
.z-opener h1{color:var(--z-sec);margin:18px 0 18px;text-shadow:3px 3px 0 rgba(21,22,15,.12)}
.z-opener .z-deck{margin:0}
.z-tally{display:flex;flex-wrap:wrap;gap:0;margin:28px 0 0;border-top:2px solid var(--z-ink)}
.z-tally div{padding:12px 22px 0 0;margin-right:22px;border-right:1px solid var(--z-rule)}
.z-tally div:last-child{border-right:0}
.z-tally dt{font-family:var(--z-mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--z-ink-3);order:2}
.z-tally dd{margin:0;font-family:var(--z-cond);font-weight:700;font-size:34px;line-height:1}
.z-collage{position:relative;min-height:400px}
.z-collage .z-print{position:absolute;width:58%}
.z-collage .z-print:nth-child(1){left:0;top:4%;--tilt:-4deg;z-index:1}
.z-collage .z-print:nth-child(2){right:0;top:0;--tilt:3deg;z-index:2}
.z-collage .z-print:nth-child(3){left:14%;bottom:-6%;--tilt:-1deg;z-index:3;width:52%}
.z-collage .z-print img{aspect-ratio:4/3;object-fit:cover}
.z-collage.profiles .z-print img{aspect-ratio:16/7;object-fit:contain;background:#EFEBD8}
@media (max-width:820px){
  .z-opener-in{grid-template-columns:1fr}
  .z-collage{min-height:260px;max-width:520px}
}

/* ── Department heading inside a front ───────────────── */
.z-dept{display:grid;grid-template-columns:auto 1fr auto;align-items:end;gap:18px;margin:64px 0 22px;
  border-bottom:2px solid var(--z-ink);padding-bottom:10px}
.z-dept .no{font-family:var(--z-stencil);font-size:clamp(44px,6vw,72px);line-height:.8;color:transparent;
  -webkit-text-stroke:1.5px var(--z-sec)}
.z-dept h2{font-family:var(--z-cond);font-weight:700;font-size:clamp(28px,3.4vw,40px);text-transform:uppercase;line-height:.95;margin:0}
.z-dept p{margin:4px 0 0;font-style:italic;color:var(--z-ink-2);font-size:16px}
.z-dept .more{font-family:var(--z-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--z-ink);
  text-decoration:none;border-bottom:2px solid var(--z-sec);padding-bottom:2px;white-space:nowrap}
.z-dept .more:hover{color:var(--z-sec)}
@media (max-width:620px){.z-dept{grid-template-columns:auto 1fr}.z-dept .more{grid-column:1/-1;justify-self:start}}

.z-grid{display:grid;gap:26px;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr))}
.z-grid.wide{grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr))}

/* ── The cover (home page) ───────────────────────────── */
.z-cover{background:var(--z-paper) var(--z-grain);border-bottom:4px double var(--z-ink);padding:22px 0 40px;position:relative;overflow:hidden;
  font-family:var(--z-serif);color:var(--z-ink)}
.z-cover::before{content:"";position:absolute;inset:0;background-image:var(--z-dots);background-size:7px 7px;
  -webkit-mask:radial-gradient(ellipse 60% 55% at 50% 66%,#000 0,transparent 70%);mask:radial-gradient(ellipse 60% 55% at 50% 66%,#000 0,transparent 70%);
  opacity:.55;pointer-events:none}
.z-cover .z-wrap{position:relative}
.z-cover-top{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-family:var(--z-mono);font-size:11px;letter-spacing:.22em;
  text-transform:uppercase;border-top:2px solid var(--z-ink);border-bottom:1px solid var(--z-ink);padding:7px 0}
.z-cover-np{margin:12px 0 0;font-family:var(--z-stencil);font-weight:400;text-transform:uppercase;line-height:.8;display:flex;flex-direction:column}
.z-cover-np .a{font-size:clamp(26px,5.2vw,64px);letter-spacing:.08em;color:var(--z-ink)}
.z-cover-np .b{font-size:clamp(40px,15.2vw,196px);letter-spacing:-.005em;color:var(--z-ink);margin-left:-.04em;
  text-shadow:.035em .03em 0 var(--z-yellow)}
.z-cover-strap{font-family:var(--z-mono);font-size:clamp(10px,1.1vw,12.5px);letter-spacing:.2em;text-transform:uppercase;
  background:var(--z-ink);color:var(--z-paper);padding:8px 12px;margin-top:14px;display:inline-block}
.z-cover-art{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.4fr) minmax(0,1fr);gap:20px;align-items:center;margin-top:18px}
.z-cover-art .cover-hero{margin:0;padding:30px 0}
.z-cover-art .cover-hero img{display:block;width:100%;height:auto;filter:drop-shadow(0 18px 14px rgba(21,22,15,.25))}
.z-cover-art .lines{display:flex;flex-direction:column;gap:22px}
.z-cover-art .lines.right{text-align:right}
.z-cover-art .lines a{display:block;text-decoration:none;color:var(--z-ink);font-family:var(--z-cond);font-weight:700;text-transform:uppercase;
  font-size:clamp(19px,2.2vw,28px);line-height:.95}
.z-cover-art .lines a b{display:block;font-family:var(--z-stencil);font-weight:400;font-size:clamp(44px,5.6vw,76px);line-height:.85;color:var(--z-blue)}
.z-cover-art .lines.right a b{color:#B8862B}
.z-cover-art .lines a.red{color:var(--z-red)}
.z-cover-art .lines a span{display:block;font-family:var(--z-serif);font-style:italic;font-weight:400;text-transform:none;font-size:15px;
  color:var(--z-ink-2);margin-top:5px;line-height:1.3}
.z-cover-art .lines a:hover{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:4px}
.z-cover-art .cover-stamp{position:absolute;right:26%;bottom:4px;transform:rotate(-6deg)}
@media (max-width:820px){
  .z-cover-art{grid-template-columns:1fr 1fr}
  .z-cover-art .cover-hero{grid-column:1/-1;grid-row:1;padding:16px 0 6px}
  .z-cover-art .lines{gap:16px}
  .z-cover-art .cover-stamp{display:none}
}

/* ── In this issue ───────────────────────────────────── */
.z-contents{background:var(--z-paper);padding:40px 0 56px;border-bottom:4px double var(--z-ink);font-family:var(--z-serif)}
.z-contents-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;border-bottom:2px solid var(--z-ink);padding-bottom:8px}
.z-contents-head h2{font-family:var(--z-stencil);font-weight:400;font-size:clamp(40px,6vw,72px);line-height:.85;text-transform:uppercase;margin:0;color:var(--z-ink)}
.z-contents-head span{font-family:var(--z-serif);font-style:italic;font-size:18px;color:var(--z-ink-2)}
.z-contents-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 36px;margin-top:4px}
.z-contents-cols .col{border-right:1px solid var(--z-rule);padding-right:36px}
.z-contents-cols .col:last-child{border-right:0;padding-right:0}
.z-contents-cols .col[data-section="museums"]{--z-sec:var(--z-mus)}
.z-contents-cols .col[data-section="aircraft"]{--z-sec:#B8862B}
.z-contents-cols .col[data-section="articles"]{--z-sec:var(--z-art)}
.z-contents .sec-h{display:flex;flex-direction:column;gap:8px;align-items:flex-start;text-decoration:none;color:var(--z-ink);padding:22px 0 14px}
.z-contents .sec-h .n{font-family:var(--z-cond);font-weight:700;font-size:40px;text-transform:uppercase;line-height:.9;
  border-bottom:6px solid var(--z-sec);padding-bottom:4px}
.z-contents .sec-h:hover .n{color:var(--z-sec)}
.z-contents .z-entry .pg{font-size:26px;min-width:2.6ch}
.z-contents .z-entry .t{font-size:20px}
@media (max-width:900px){
  .z-contents-cols{grid-template-columns:1fr}
  .z-contents-cols .col{border-right:0;padding-right:0;border-bottom:2px solid var(--z-ink);padding-bottom:14px}
}
@media (max-width:480px){
  .z-runhead .z-wrap > a:first-child,.z-runhead .z-wrap > span[aria-hidden]{display:none}
  .z-runhead .z-wrap{white-space:nowrap;overflow:hidden}
}

/* ── Reference furniture: the airframe finder (The Hangar), and the chart, near-me, notes and
      quick answers (the Museums front). Scoped to .acsearch and .z-ref. ── */
.acsearch,.z-ref{--z-card:#FBFAF3;--z-sky:#C9CFB1;--z-dearth:#6B573A}
.z-ref .dir-nav{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;margin:16px 0 6px}
.z-ref .dir-nav a{display:block;text-decoration:none;color:var(--z-ink);background:var(--z-card);
  border:1px solid var(--z-rule);border-left:4px solid var(--z-blue);padding:10px 14px;
  font-family:'Saira Condensed',sans-serif;font-weight:600;font-size:16px;letter-spacing:.02em;
  transition:transform .12s ease, box-shadow .12s ease}
.z-ref .dir-nav a:hover{transform:translateY(-2px);box-shadow:0 4px 0 var(--z-rule)}
.z-ref .dir-nav a.is-near{border-left-color:var(--z-yellow);background:var(--z-ink);color:var(--z-card);
  box-shadow:0 4px 0 var(--z-rule)}
.z-ref .dir-nav a.is-near::after{content:' · near you';font-family:'IBM Plex Mono',monospace;
  font-size:11px;letter-spacing:.12em;text-transform:uppercase;opacity:.75}
.z-ref .dir-nav-tight a{border-left-color:var(--z-red);font-size:15px}
.z-ref .near-me{margin:18px 0 8px;max-width:640px}
.z-ref .near-me-cta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;text-decoration:none;
  background:var(--z-ink);border:1px solid var(--z-ink);border-left:8px solid var(--z-yellow);
  padding:16px 20px;color:var(--z-card);transition:transform .12s ease, box-shadow .12s ease}
.z-ref .near-me-cta:hover{transform:translateY(-2px);box-shadow:0 5px 0 rgba(21,22,15,.25)}
.z-ref .near-me-cta[aria-disabled="true"]{opacity:.7;pointer-events:none}
.z-ref .near-me-label{font-family:'Saira Stencil One',sans-serif;font-size:clamp(22px,3vw,30px);
  text-transform:uppercase;line-height:1;color:var(--z-card)}
.z-ref .near-me-region{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--z-yellow)}
.z-ref .near-me-meta{flex:1 1 100%;font-style:italic;color:var(--z-sky);font-size:14.5px;margin:0}
.z-ref .map-legend{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 0}
.z-ref .chip{font-family:'Saira Condensed',sans-serif;font-weight:600;font-size:14px;letter-spacing:.05em;
  text-transform:uppercase;border:1.5px solid var(--z-rule);background:var(--z-card);color:var(--z-ink);
  padding:6px 12px;border-radius:999px;cursor:pointer;display:inline-flex;align-items:center;gap:8px}
.z-ref .chip .dot{width:12px;height:12px;border-radius:50%;border:2px solid var(--z-ink)}
.z-ref .chip[aria-pressed="true"]{background:var(--z-ink);color:var(--z-card);border-color:var(--z-ink)}
.z-ref .leaflet-popup-content{font-family:'Saira Condensed',sans-serif;margin:10px 12px}
.z-ref .pop{width:210px}
.z-ref .pop .gal-open{padding:0;border:none;background:none;cursor:zoom-in;display:block;width:100%}
.z-ref .pop img{width:100%;height:110px;object-fit:cover;margin-bottom:8px;border:1px solid var(--z-rule);pointer-events:none}
.z-ref .pop .pn{font-weight:700;font-size:16px;line-height:1.15;text-transform:uppercase}
.z-ref .pop .pr{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--z-ink-3);margin:4px 0 6px}
.z-ref .pop a{font-family:'IBM Plex Mono',monospace;font-size:12px}
.z-ref .rnd-marker{background:transparent;border:none}
.z-ref .pop a{display:inline-block;margin-right:12px}
.z-ref .serial{font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:12px;letter-spacing:.22em;
  color:var(--z-card);padding:4px 10px;display:inline-block}
.acsearch:focus-within{z-index:1000;isolation:isolate}
.acsearch .kicker{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.3em;
  text-transform:uppercase;color:var(--z-red)}
.acsearch h2{font-family:'Saira Condensed',sans-serif;font-weight:700;font-size:30px;margin:6px 0 4px;
  text-transform:uppercase;color:var(--z-ink)}
.acsearch .hint{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--z-ink-3);margin:0 0 14px}
.acs-wrap{position:relative;max-width:560px}
#acs-input{width:100%;box-sizing:border-box;padding:12px 14px;border:2px solid var(--z-ink);
  background:var(--z-card);font-family:'IBM Plex Mono',monospace;font-size:14px;color:var(--z-ink)}
#acs-input:focus{outline:3px solid var(--z-yellow);outline-offset:-1px}
.acs-drop{position:absolute;left:0;right:0;top:100%;z-index:1;display:none;
  background-color:var(--z-card);border:2px solid var(--z-ink);border-top:none;
  max-height:320px;overflow-y:auto;overscroll-behavior:contain;
  box-shadow:0 8px 24px rgba(21,22,15,.22)}
.acs-drop.open{display:block}
.acs-cat-hdr{padding:9px 14px 5px;font-family:'Saira Condensed',sans-serif;font-weight:700;font-size:13px;
  text-transform:uppercase;letter-spacing:.06em;color:var(--z-ink);background-color:var(--z-paper-3);
  border-top:1px solid var(--z-rule)}
.acs-cat-hdr:first-child{border-top:none;padding-top:7px}
.acs-opt{padding:8px 14px;cursor:pointer;font-family:'IBM Plex Mono',monospace;font-size:12.5px;
  color:var(--z-ink);display:flex;justify-content:space-between;gap:12px;align-items:baseline;
  background-color:var(--z-card)}
.acs-opt .n{color:var(--z-ink-3);font-size:11px;white-space:nowrap}
.acs-opt:hover,.acs-opt.sel{background:var(--z-ink);color:var(--z-card)}
.acs-opt:hover .n,.acs-opt.sel .n{color:var(--z-sky)}
.acs-drop-empty{padding:10px 14px;font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--z-ink-3);
  background-color:var(--z-card)}
.acs-results{margin-top:18px;display:none}
.acs-results.open{display:block}
.acs-rhead{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--z-ink-3);border-bottom:2px solid var(--z-ink);padding-bottom:6px;margin-bottom:10px;
  display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.acs-clear{background:none;border:none;cursor:pointer;font-family:'IBM Plex Mono',monospace;font-size:11px;
  letter-spacing:.14em;color:var(--z-red);text-transform:uppercase;padding:0}
.acs-hit{display:block;text-decoration:none;color:var(--z-ink);padding:10px 2px;border-bottom:1px dashed var(--z-rule)}
.acs-hit:hover{background:rgba(58,69,49,.07)}
.acs-hit .top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.acs-hit .serial{font-size:10px}
.acs-hit .mn{font-family:'Saira Condensed',sans-serif;font-weight:700;font-size:17px;
  text-transform:uppercase;letter-spacing:.03em}
.acs-hit .city{font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:var(--z-ink-3)}
.acs-hit .lines{display:block;margin:4px 0 0;padding-left:24px;font-family:'IBM Plex Mono',monospace;font-size:11.5px;
  color:var(--z-dearth);line-height:1.55}
.acs-none{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--z-ink-3);padding:8px 0}
.z-ref .notes{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px;margin-top:14px}
.z-ref .note .nt{font-family:'Saira Condensed',sans-serif;font-weight:700;text-transform:uppercase;
  letter-spacing:.06em;font-size:18px;color:var(--z-card);margin:0 0 6px}
.z-ref .note p{margin:0;font-size:15px;color:var(--z-sky)}
.z-ref .faq{margin-top:28px;max-width:820px}
.z-ref .faq details{border-top:1px solid rgba(201,207,177,.28);padding:14px 0}
.z-ref .faq details:last-child{border-bottom:1px solid rgba(201,207,177,.28)}
.z-ref .faq summary{font-family:'Saira Condensed',sans-serif;font-weight:700;font-size:18px;
  letter-spacing:.04em;text-transform:uppercase;color:var(--z-card);cursor:pointer;list-style:none}
.z-ref .faq summary::-webkit-details-marker{display:none}
.z-ref .faq summary::after{content:'+';float:right;color:var(--z-yellow);font-family:'IBM Plex Mono',monospace}
.z-ref .faq details[open] summary::after{content:'−'}
.z-ref .faq details p{margin:10px 0 0;font-size:15.5px;color:var(--z-sky);max-width:66ch}
.z-ref #map{height:68vh;min-height:420px;border:2px solid var(--z-ink);box-shadow:6px 6px 0 var(--z-ink);background:#C9CFB1}
.z-ref .chip{border-color:var(--z-ink)}
.z-ref .dir-nav a{background:#FBFAF3;border:1px solid var(--z-ink);border-left:4px solid var(--z-blue);box-shadow:3px 3px 0 var(--z-ink)}
.z-ref .dir-nav a:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--z-blue)}
.z-ref .near-me-cta{box-shadow:4px 4px 0 var(--z-yellow)}
.z-ref .note{border:1px solid var(--z-ink);background:#FBFAF3;box-shadow:3px 3px 0 var(--z-ink)}
.z-ref .note .nt{color:var(--z-ink)}
.z-ref .note p,.z-ref .faq details p{color:var(--z-ink-2)}
.z-ref .faq details{border-top-color:var(--z-ink)}
.z-ref .faq details:last-child{border-bottom-color:var(--z-ink)}
.z-ref .faq summary{color:var(--z-ink)}
.z-ref .faq summary::after{color:var(--z-red)}
.z-ref .method{background:#FBFAF3;border:1px solid var(--z-ink);border-left:6px solid var(--z-red);box-shadow:4px 4px 0 var(--z-ink);
  padding:22px 26px;font-size:15.5px;max-width:900px}
.z-ref .method p{margin:.4em 0}
.z-ref .method .mono{font-family:var(--z-mono);font-size:12.5px;color:var(--z-ink-3)}
.acsearch{padding:0}
.acsearch #acs-input{box-shadow:4px 4px 0 var(--z-ink);background:#FBFAF3}

/* ── Page turn ──────────────────────────────────────────
   Going to another page turns the old one away from the spine (the left edge), 0.3s, for the first
   three page changes in 24 hours (counted in localStorage by public/masthead.js). Going back
   (history, or a rel="prev" link) turns the new page in the other way; public/masthead.js marks those
   with the 'back' transition type. The masthead and thumb index stay put, like the binding.
   Browsers without cross-document view transitions simply load the page. */
@view-transition{navigation:auto;types:page}
/* only page-to-page navigations (type "page"), not a page's own view transitions such as The Hangar's filters */
html:active-view-transition-type(page)::view-transition-group(root){animation-duration:.3s}
html:active-view-transition-type(page)::view-transition-old(root){animation:z-page-out .3s cubic-bezier(.45,.05,.55,.95) both;transform-origin:0 50%;z-index:2}
html:active-view-transition-type(page)::view-transition-new(root){animation:none;z-index:1}
html:active-view-transition-type(back)::view-transition-old(root){animation:none;z-index:1}
html:active-view-transition-type(back)::view-transition-new(root){animation:z-page-in .3s cubic-bezier(.45,.05,.55,.95) both;transform-origin:0 50%;z-index:2}
@keyframes z-page-out{
  from{transform:perspective(1800px) rotateY(0);opacity:1}
  to{transform:perspective(1800px) rotateY(-80deg);opacity:.2}}
@keyframes z-page-in{
  from{transform:perspective(1800px) rotateY(-80deg);opacity:.2}
  to{transform:perspective(1800px) rotateY(0);opacity:1}}
@media (prefers-reduced-motion:reduce){
  @view-transition{navigation:none}
  ::view-transition-old(root),::view-transition-new(root){animation:none}
}
