/* Bight & Bite — Harbor direction art pass (id 19 Stage 7).
   Mood: the clipboard at the landing office — a working logbook.
   System stacks only (offline-safe, no webfonts). No external requests. */
:root{
  --paper:#f7f3e8; --ink:#1a2a34; --red:#b03a24; --teal:#1f5f74;
  --muted:#5d6b72; --line:#d9d1bc; --tint:#efe9d8;
  --banner:#f4e3c2; --banner-line:#b98a2f;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --serif:Georgia,"Times New Roman",serif;
  --mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:auto}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);
  font-size:16px;line-height:1.65;
  background-image:repeating-linear-gradient(to bottom,transparent 0 27px,rgba(26,42,52,.05) 27px 28px)}
.wrap{max-width:1060px;margin:0 auto;padding:0 22px}
h1,h2,h3{color:var(--ink)}
a{color:var(--teal);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:2px}
a:hover{color:var(--red);text-decoration-color:var(--red)}
img{max-width:100%;height:auto}
::selection{background:var(--red);color:#fff}
:focus{outline:none}
:focus-visible{outline:3px solid var(--red);outline-offset:2px}
/* reading progress */
.progress{position:fixed;top:0;left:0;height:3px;width:100%;background:transparent;z-index:50;pointer-events:none}
.progress span{display:block;height:100%;width:0;background:var(--red)}
/* masthead: landing-office plate */
.site-header{border-bottom:3px solid var(--ink);background:var(--paper)}
.head-in{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:16px 22px;flex-wrap:wrap}
.brand{font-family:var(--sans);font-weight:800;letter-spacing:-.01em;font-size:1.35rem;
  color:var(--ink);text-decoration:none;text-transform:uppercase;line-height:1.1}
.brand small{display:block;font-family:var(--mono);font-weight:400;font-size:.62rem;
  letter-spacing:.28em;color:var(--muted);text-transform:uppercase;margin-top:4px}
.site-header nav{display:flex;gap:20px;flex-wrap:wrap}
.site-header nav a{font-family:var(--mono);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--teal);text-decoration:none;border-bottom:2px solid transparent;padding-bottom:2px}
.site-header nav a:hover{color:var(--ink);border-color:var(--red)}
/* footer with real sitemap */
.site-footer{border-top:3px solid var(--ink);padding:30px 0 46px;margin-top:56px}
.foot-in{padding:0 22px}
.site-footer nav{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.site-footer nav a{font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--teal);text-decoration:none}
.site-footer nav a:hover{color:var(--red)}
.muted{color:var(--muted)}
.small{font-size:.85rem}
/* home hero: the logbook entry */
.hero{padding:52px 0 40px;border-bottom:2px solid var(--ink)}
.fileline{font-family:var(--mono);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);margin:0 0 14px}
.fileline b{color:var(--red);font-weight:700}
.hero h1{font-family:var(--sans);font-weight:800;font-size:clamp(2.4rem,6vw,4rem);line-height:.98;
  letter-spacing:-.02em;margin:0 0 14px;text-transform:uppercase}
.hero h1 em{font-style:normal;color:var(--red)}
.lede{font-size:1.2rem;max-width:640px;margin:0 0 10px;font-family:var(--serif)}
.sub{color:var(--muted);max-width:640px;margin:0 0 22px}
.heroimg{border:2px solid var(--ink);display:block;width:100%;height:auto;margin-top:26px;filter:sepia(.18) contrast(1.02)}
.capbar{display:flex;justify-content:space-between;gap:12px;font-family:var(--mono);font-size:.72rem;
  color:var(--muted);border:2px solid var(--ink);border-top:0;padding:8px 12px;background:var(--tint);flex-wrap:wrap}
.btnrow{display:flex;gap:12px;flex-wrap:wrap;margin-top:4px}
.btn{font-family:var(--mono);font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;
  padding:12px 20px;border:2px solid var(--ink);color:var(--ink);background:transparent;display:inline-block}
.btn.solid{background:var(--red);border-color:var(--red);color:#fff}
.btn:hover{background:var(--ink);color:#fff;border-color:var(--ink);text-decoration:none}
.btn.solid:hover{background:#8f2f1d;border-color:#8f2f1d}
/* sections with rule dividers */
.sec{padding:40px 0;border-bottom:1px solid var(--line)}
.sec-head{display:flex;align-items:baseline;gap:14px;border-top:3px solid var(--ink);padding-top:12px;margin-bottom:20px;flex-wrap:wrap}
.sec-no{font-family:var(--mono);font-size:.75rem;color:#fff;background:var(--ink);padding:3px 9px;letter-spacing:.1em;white-space:nowrap}
.sec-head h2{font-family:var(--sans);font-weight:800;text-transform:uppercase;letter-spacing:-.01em;font-size:1.5rem;margin:0}
/* dock tickets (cards) */
.tickets{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:0;border:2px solid var(--ink);margin:18px 0}
.ticket{padding:18px;border-right:1px dashed var(--muted);border-bottom:1px solid var(--line)}
.ticket:hover{background:var(--tint)}
.kicker{font-family:var(--mono);font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:var(--red);margin:0 0 8px;font-weight:700}
.ticket h3{font-family:var(--sans);font-size:1.02rem;margin:0 0 8px;line-height:1.3}
.ticket h3 a{color:var(--ink);text-decoration:none;border-bottom:2px solid var(--red)}
.ticket h3 a:hover{color:var(--red)}
.ticket p{font-size:.92rem;color:var(--muted);margin:0 0 10px}
.ticket .meta{margin:0}
.meta{font-family:var(--mono);font-size:.72rem;color:var(--muted)}
/* numbered review list */
.revlist{list-style:none;margin:0;padding:0}
.revlist li{display:flex;gap:14px;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--line)}
.revlist .n{font-family:var(--mono);color:var(--red);font-size:.8rem;min-width:2.2em}
.revlist a{color:var(--ink);text-decoration:none;font-size:1.02rem;border-bottom:1px solid var(--line)}
.revlist a:hover{color:var(--teal);border-color:var(--teal)}
/* A-Z index (2026-09-22): every library record linked, nothing buried */
.az{column-width:330px;column-gap:30px}
.azgroup{break-inside:avoid;margin-bottom:1.2em}
.azletter{font-family:var(--mono);font-size:1rem;letter-spacing:.18em;color:var(--red);
  border-bottom:2px solid var(--ink);margin:0 0 .5em;padding-bottom:4px}
.azlist{list-style:none;margin:0;padding:0}
.azlist li{padding:5px 0;border-bottom:1px dotted var(--line);font-size:.94rem;line-height:1.45}
.azlist a{color:var(--ink);text-decoration:none}
.azlist a:hover{color:var(--red);border-bottom:1px solid var(--red)}
.aztype{font-family:var(--mono);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);margin-left:8px;white-space:nowrap}
/* library cards with framed photos */
.lib3{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px}
.libcard{border:2px solid var(--ink)}
.libcard img{width:100%;height:190px;object-fit:cover;display:block;border-bottom:2px solid var(--ink);filter:sepia(.18) contrast(1.02)}
.libcard .in{padding:14px 16px}
/* article pages */
.crumbs{font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;color:var(--muted);margin:22px 0 0;text-transform:uppercase}
.crumbs a{color:var(--muted)}
.record{max-width:1060px}
.record > .kicker{margin-top:18px}
.article h1,.record h1{font-family:var(--sans);font-weight:800;text-transform:uppercase;letter-spacing:-.015em;
  font-size:clamp(1.8rem,4.5vw,2.8rem);line-height:1.02;margin:.4em 0 .3em}
/* rotated verification stamp — text comes from the record's real status */
.stamp{display:inline-block;font-family:var(--mono);font-size:.72rem;letter-spacing:.18em;color:var(--red);
  border:2px solid var(--red);padding:5px 12px;transform:rotate(-2deg);text-transform:uppercase;margin:10px 0 2px}
/* table of contents on long articles */
.toc{border:2px solid var(--ink);background:var(--tint);padding:14px 18px;margin:22px 0;max-width:760px}
.toc-head{font-family:var(--mono);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);margin:0 0 8px}
.toc ol{margin:0;padding-left:20px;font-size:.92rem}
.toc li{margin:4px 0}
.toc a{color:var(--teal);text-decoration:none;border-bottom:1px solid var(--line)}
.toc a:hover{color:var(--red);border-color:var(--red)}
.body{max-width:760px;font-size:1.06rem}
.body > p:first-of-type::first-letter{font-family:var(--sans);font-weight:800;font-size:3.1em;float:left;
  line-height:.82;padding:4px 8px 0 0;color:var(--red)}
.body h2{font-family:var(--sans);font-weight:800;text-transform:uppercase;font-size:1.25rem;
  margin:2em 0 .6em;border-bottom:2px solid var(--ink);padding-bottom:6px;letter-spacing:-.01em}
.body h3{font-family:var(--sans);font-size:1.1rem;margin:1.6em 0 .4em}
.body p{margin:0 0 1.1em}
/* pull-quote treatment for body blockquotes */
.body blockquote{margin:1.8em 0;padding:.2em 0 .2em 1.1em;border-left:4px solid var(--red);
  font-family:var(--serif);font-size:1.18rem;font-style:italic;color:var(--ink);max-width:680px}
.body code{background:var(--tint);padding:1px 5px;font-size:.88em;font-family:var(--mono)}
.body pre{background:var(--ink);color:#f0ead8;padding:14px;overflow-x:auto;font-family:var(--mono);font-size:.85rem}
.body pre code{background:none;padding:0;color:inherit}
.body hr{border:0;border-top:2px solid var(--ink);margin:2em 0}
.body ul,.body ol{margin:0 0 1.1em;padding-left:1.4em}
.body li{margin:.35em 0}
/* comparison tables: sticky header, scrolls gracefully at 360px */
.tblwrap{overflow-x:auto;border:2px solid var(--ink);margin:1.2em 0;max-width:100%}
.tblwrap table{margin:0;border:0}
table{border-collapse:collapse;width:100%;margin:1.2em 0;font-size:.92rem;font-family:var(--sans)}
thead th{position:sticky;top:0;background:var(--ink);color:var(--paper);
  font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;text-align:left;
  padding:9px 10px;white-space:nowrap;z-index:1}
tbody td{border-bottom:1px solid var(--line);padding:9px 10px;vertical-align:top}
tbody tr:hover{background:var(--tint)}
/* photo evidence: sepia-kissed, 2px ink frames, mono caption bars */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin:26px 0;max-width:900px}
.gallery figure{margin:0;border:2px solid var(--ink);background:transparent}
.gallery img{width:100%;height:170px;object-fit:cover;display:block;filter:sepia(.18) contrast(1.02)}
.gallery figcaption{font-family:var(--mono);font-size:.7rem;color:var(--muted);padding:8px 10px;
  border-top:2px solid var(--ink);background:var(--tint)}
.gallery .credit{display:block;font-style:italic;margin-top:3px}
/* sources */
.srcblock{border:2px solid var(--ink);padding:18px;margin:30px 0;max-width:760px;background:transparent}
.srcblock h2{font-family:var(--mono);font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;margin:0 0 10px}
.sources{margin:.4em 0;padding-left:20px;font-size:.92rem}
.src-meta{color:var(--muted);font-size:.85em}
.src-note{color:var(--muted);font-style:italic}
/* related */
.related{max-width:760px;margin-top:30px;border-top:3px solid var(--ink);padding-top:12px}
.related h2{font-family:var(--sans);font-weight:800;text-transform:uppercase;font-size:1.1rem;margin:0 0 8px}
.related ul{list-style:none;margin:0;padding:0}
.related li{padding:8px 0;border-bottom:1px solid var(--line)}
/* download link */
.dl{display:inline-block;margin:10px 0;padding:10px 18px;border:2px solid var(--ink);text-decoration:none;
  font-family:var(--mono);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}
.dl:hover{background:var(--ink);color:#fff}
/* finder */
.finder .search{display:block;margin:14px 0;font-family:var(--mono);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}
.finder input[type=search]{width:100%;max-width:520px;padding:10px 12px;font-size:1rem;font-family:var(--sans);
  border:2px solid var(--ink);background:var(--tint);color:var(--ink);display:block;margin-top:6px}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.chip{border:2px solid var(--ink);background:transparent;padding:6px 14px;cursor:pointer;font-size:.85rem;
  font-family:var(--mono);letter-spacing:.04em;color:var(--ink)}
.chip:hover{background:var(--tint)}
.chip[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
/* demo forms: visibly inactive, honest */
.demo-banner{font-family:var(--mono);font-size:.75rem;letter-spacing:.06em;background:var(--banner);
  border:2px solid var(--banner-line);padding:10px 14px;margin:16px 0;max-width:640px}
form{max-width:640px;margin:18px 0}
fieldset{border:2px solid var(--ink);padding:18px;background:transparent}
legend{font-family:var(--mono);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;padding:0 8px}
label{display:block;margin:10px 0;font-weight:600}
label input,label textarea{width:100%;padding:9px 11px;margin-top:4px;border:2px solid var(--line);
  background:var(--tint);font:inherit;font-weight:400;color:var(--muted)}
label.consent{font-weight:400}
label.consent input{width:auto}
button[type=submit]{background:var(--ink);color:var(--paper);border:2px solid var(--ink);padding:10px 22px;
  font-size:1rem;font-family:var(--mono);letter-spacing:.06em;cursor:pointer}
button[disabled]{opacity:.55;cursor:not-allowed}
.newsletter-cta{border-top:2px solid var(--ink);padding:28px 0;margin-top:44px}
.newsletter-cta h2{font-family:var(--sans);font-weight:800;text-transform:uppercase;font-size:1.3rem;margin:0 0 8px}
/* tackle shops */
.store img{width:100%;height:150px;object-fit:cover;display:block;border:2px solid var(--ink);filter:sepia(.18) contrast(1.02)}
.ph-label{font-family:var(--mono);font-size:.72rem;color:#6b5313;background:var(--banner);
  border:1px solid var(--banner-line);padding:4px 8px;margin:8px 0;display:inline-block}
/* designed 404 */
.err404{padding:60px 0;border-bottom:2px solid var(--ink)}
.err404 .code{font-family:var(--mono);font-weight:700;font-size:clamp(4rem,14vw,8rem);color:var(--red);
  letter-spacing:-.02em;line-height:1;margin:0}
.err404 h1{font-family:var(--sans);font-weight:800;text-transform:uppercase;font-size:clamp(1.6rem,4vw,2.4rem);margin:.4em 0}
.err404 .fileline{margin-top:24px}
@media (max-width:600px){
  .ticket{border-right:0}
  .gallery img{height:140px}
  .hero{padding:36px 0 28px}
  .hero h1{font-size:2.3rem}
  .head-in{padding:12px 22px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none !important;animation:none !important}
  html{scroll-behavior:auto}
}
