:root{
  --paper: #EDE6D6;
  --paper-dark: #E2D9C4;
  --paper-shadow: #cfc4a8;
  --ink: #1C1A17;
  --mimeo: #3B4C8C;
  --red: #B23A2E;
  --olive: #6B6B47;
  --gold: #C99A3B;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:
    radial-gradient(ellipse at top left, rgba(59,76,140,0.04), transparent 45%),
    radial-gradient(ellipse at bottom right, rgba(178,58,46,0.04), transparent 45%),
    var(--paper);
  background-attachment:fixed;
  color:var(--ink);
  font-family:'Archivo Narrow', sans-serif;
  min-height:100vh;
}
body::before{
  content:"";
  position:fixed; inset:0;
  pointer-events:none;
  opacity:0.5;
  background-image:
    repeating-linear-gradient(0deg, rgba(0,0,0,0.015) 0px, transparent 1px, transparent 2px),
    repeating-linear-gradient(90deg, rgba(0,0,0,0.012) 0px, transparent 1px, transparent 2px);
  z-index:0;
}
.wrap{max-width:900px; margin:0 auto; padding:36px 20px 80px; position:relative; z-index:1;}

/* ===== MASTHEAD ===== */
.masthead{
  border-top:5px solid var(--ink);
  border-bottom:2px solid var(--ink);
  padding:22px 0 14px;
  margin-bottom:30px;
  text-align:center;
}
.masthead .eyebrow{
  font-family:'Archivo Narrow', sans-serif;
  font-weight:600; font-style:italic;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-size:12px;
  color:var(--olive);
}
.masthead h1{
  font-family:'Anton', sans-serif;
  font-weight:400;
  font-size:clamp(30px, 7.5vw, 64px);
  letter-spacing:.01em;
  margin:2px 0 6px;
  line-height:.98;
  text-transform:uppercase;
  position:relative;
  display:inline-block;
  color:var(--ink);
}
.masthead .tagline{
  font-family:'Special Elite', monospace;
  font-size:14px;
  color:#4a463d;
}

/* ===== INTRO ===== */
.intro{
  font-family:'Special Elite', monospace;
  font-size:15px;
  line-height:1.85;
  color:#2a2620;
  max-width:640px;
  margin:0 auto 34px;
  text-align:left;
  padding-bottom:28px;
  border-bottom:1px dashed #b7ac91;
  white-space:pre-wrap;
}
.intro:empty{display:none;}

/* ===== TABS ===== */
.tabs{display:flex; gap:0; justify-content:center; margin-bottom:34px; border-bottom:2px solid var(--ink);}
.tab{
  font-family:'Archivo Narrow', sans-serif;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:13px;
  background:none; border:none; cursor:pointer;
  padding:10px 22px;
  color:#6b6558;
  position:relative;
  transition:color .15s ease;
}
.tab.active{color:var(--ink);}
.tab.active::after{
  content:"";
  position:absolute; left:8px; right:8px; bottom:-2px; height:3px;
  background:var(--red);
}
.panel{display:none;}
.panel.active{display:block;}

/* ===== ARTICLES ===== */
.article{
  position:relative;
  background:var(--paper);
  border:1px solid #cabf9f;
  padding:22px 24px;
  margin-bottom:22px;
  box-shadow:3px 3px 0 var(--paper-shadow);
}
.article-head{display:flex; justify-content:space-between; align-items:baseline; gap:12px;}
.article h2{
  font-family:'Anton', sans-serif;
  font-weight:400;
  font-size:26px;
  text-transform:uppercase;
  margin:0 0 4px;
  letter-spacing:.01em;
}
.article-meta{
  font-size:11px; letter-spacing:.06em; text-transform:uppercase;
  color:var(--red); font-weight:600;
}

/* ---- scan shown prominently, first ---- */
.article-scan{
  margin-top:16px;
  border:2px solid var(--ink);
  background:#171512;
  padding:8px;
}
.scan-frame{
  display:block;
  width:100%;
  height:min(80vh, 720px);
  border:none;
  background:#fff;
}
.scan-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px 18px;
  align-items:center;
  padding:10px 4px 2px;
}
.scan-link{
  font-family:'Archivo Narrow';
  font-weight:600;
  font-size:11px;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--paper);
}
.scan-expand{
  font-family:'Archivo Narrow';
  font-weight:600;
  font-size:11px;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--paper);
  background:none;
  border:1px solid var(--paper);
  cursor:pointer;
  padding:6px 10px;
}
.scan-expand:hover{background:rgba(237,230,214,0.12);}

/* ---- transcription toggle (secondary to the scan) ---- */
.transcript-toggle{
  display:flex;
  align-items:center;
  gap:6px;
  margin-top:18px;
  background:none;
  border:none;
  cursor:pointer;
  padding:0;
  font-family:'Archivo Narrow';
  font-weight:600;
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--olive);
}
.transcript-toggle:hover{color:var(--ink);}
.caret{font-family:'Archivo Narrow'; font-size:16px; color:var(--olive); transition:transform .15s ease;}
.transcript-toggle.open .caret{transform:rotate(180deg);}
.article-body{
  font-family:'Special Elite', monospace;
  font-size:14.5px;
  line-height:1.85;
  color:#2a2620;
  white-space:pre-wrap;
  margin-top:14px;
  padding-top:14px;
  border-top:1px dashed #b7ac91;
  display:none;
}
.article-body.open{display:block;}

/* ===== PHOTOS: contact sheet ===== */
.contact-sheet{
  background:#171512;
  padding:22px 18px;
  border:2px solid var(--ink);
}
.sprockets{display:flex; justify-content:space-between; margin-bottom:10px;}
.sprockets span{width:9px; height:9px; border-radius:50%; background:var(--paper); opacity:.25;}
.photo-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(140px, 1fr));
  gap:10px;
}
.frame{
  background:#0e0d0b;
  padding:6px 6px 22px;
  cursor:pointer;
  position:relative;
  border:1px solid #3a362e;
}
.frame img{width:100%; aspect-ratio:1/1; object-fit:cover; display:block; filter:sepia(.15) contrast(1.03);}
.frame .cap{
  position:absolute; bottom:4px; left:6px; right:6px;
  font-family:'Archivo Narrow';
  font-size:9.5px; letter-spacing:.04em;
  color:#cabf9f;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}

/* ---- document (PDF) thumbnails ---- */
.doc-thumb{
  width:100%; aspect-ratio:1/1;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:8px;
  background:var(--paper-dark);
  padding:10px;
  text-align:center;
}
.doc-icon{
  font-family:'Archivo Narrow';
  font-weight:600;
  font-size:11px;
  letter-spacing:.08em;
  color:var(--paper);
  background:var(--red);
  border-radius:2px;
  padding:5px 10px;
  transform:rotate(-3deg);
  box-shadow:2px 2px 0 rgba(0,0,0,0.25);
}
.doc-name{
  font-family:'Special Elite', monospace;
  font-size:10px;
  line-height:1.3;
  color:#3a362e;
  padding:0 4px;
  overflow:hidden;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
}

/* ===== NOTES: ruled margin paper ===== */
.notes-margin{
  background:var(--paper);
  border:1px solid #cabf9f;
  box-shadow:3px 3px 0 var(--paper-shadow);
  padding:6px 0;
}
.note{
  position:relative;
  padding:16px 24px 16px 60px;
  border-bottom:1px solid #d8cfb6;
}
.note:last-child{border-bottom:none;}
.note::before{
  content:"";
  position:absolute;
  left:38px; top:0; bottom:0;
  width:2px;
  background:var(--red);
  opacity:.55;
}
.note-date{
  font-family:'Archivo Narrow';
  font-size:10.5px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--red);
  font-weight:600;
  margin-bottom:6px;
}
.note-text{
  font-family:'Special Elite', monospace;
  font-size:14px;
  line-height:1.75;
  color:#2a2620;
  white-space:pre-wrap;
}

.empty{
  font-family:'Special Elite', monospace;
  color:#8a8370;
  text-align:center;
  padding:50px 20px;
  font-size:14px;
}

/* ===== LIGHTBOX ===== */
.lightbox{
  display:none;
  position:fixed; inset:0;
  background:rgba(10,9,7,0.92);
  z-index:50;
  align-items:center; justify-content:center;
  padding:30px;
  flex-direction:column;
}
.lightbox.open{display:flex;}
.lightbox img{max-width:min(88vw,700px); max-height:65vh; object-fit:contain; border:6px solid var(--paper);}
.lb-pdf{
  display:none;
  width:min(92vw, 900px);
  height:78vh;
  border:6px solid var(--paper);
  background:#fff;
}
.lb-pdf-open{
  display:none;
  margin-top:12px;
  font-family:'Archivo Narrow';
  font-size:12px;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--paper);
  text-decoration:underline;
}
.lightbox.pdf-mode .lb-pdf,
.lightbox.pdf-mode .lb-pdf-open{display:block;}
.lightbox.pdf-mode img{display:none;}
.lightbox .lb-cap{
  color:var(--paper);
  font-family:'Special Elite', monospace;
  margin-top:16px;
  text-align:center;
  max-width:600px;
  font-size:14px;
}
.lightbox .lb-close{
  position:absolute; top:22px; right:28px;
  background:none; border:none; color:var(--paper);
  font-size:28px; cursor:pointer; font-family:'Archivo Narrow';
}

footer{
  text-align:center; margin-top:50px;
  font-family:'Archivo Narrow';
  font-size:11px; letter-spacing:.08em; text-transform:uppercase;
  color:#8a8370;
}

@media (max-width:480px){
  .article h2{font-size:22px;}
  .note{padding-left:52px;}
  .note::before{left:32px;}
}
