/* ============================================================
   THE FALSE EAGLE — shared foundation stylesheet
   One committed world: night, stone, lamplight.
   Loaded by every page as /assets/site.css.
   Page-specific styles live in each page's own <style> block.
   ============================================================ */

/* ---------- fonts (self-hosted, absolute paths) ---------- */
@font-face { font-family:"Cinzel"; font-weight:400 900; font-style:normal; font-display:swap;
  src:url(/fonts/Cinzel-var.ttf) format("truetype"); }
@font-face { font-family:"Cormorant Garamond"; font-weight:400; font-style:normal; font-display:swap;
  src:url(/fonts/CG-400.woff2) format("woff2"); }
@font-face { font-family:"Cormorant Garamond"; font-weight:500; font-style:normal; font-display:swap;
  src:url(/fonts/CG-500.woff2) format("woff2"); }
@font-face { font-family:"Cormorant Garamond"; font-weight:600; font-style:normal; font-display:swap;
  src:url(/fonts/CG-600.woff2) format("woff2"); }
@font-face { font-family:"Cormorant Garamond"; font-weight:400; font-style:italic; font-display:swap;
  src:url(/fonts/CG-400i.woff2) format("woff2"); }
@font-face { font-family:"Cormorant Garamond"; font-weight:600; font-style:italic; font-display:swap;
  src:url(/fonts/CG-600i.woff2) format("woff2"); }
@font-face { font-family:"IM Fell"; font-weight:400; font-style:normal; font-display:swap;
  src:url(/fonts/IMFell-400.woff2) format("woff2"); }
@font-face { font-family:"IM Fell"; font-weight:400; font-style:italic; font-display:swap;
  src:url(/fonts/IMFell-400i.woff2) format("woff2"); }
@font-face { font-family:"La Belle Aurore"; font-weight:400; font-style:normal; font-display:swap;
  src:url(/fonts/LaBelle-400.woff2) format("woff2"); }

/* ---------- tokens ---------- */
:root {
  --ink:#100e0b; --ink-2:#161310; --panel:#1e1913;
  --stone:#47443c; --stone-line:#544e40;
  --gold:#d9b476; --gold-bright:#ecc98f; --gold-dim:#9c8256;
  --parchment:#ece1c8; --parchment-dim:#b3a78c;
  --paper:#e8dcbe; --paper-2:#dccfa9; --sepia:#5a4630; --sepia-lite:#7c6748;
  --shadow:rgba(0,0,0,.5);
}

/* ---------- reset & base ---------- */
* { box-sizing:border-box; }
html, body { margin:0; padding:0; }
html { scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } }

body {
  background:var(--ink); color:var(--parchment);
  font-family:"Cormorant Garamond","Iowan Old Style",Georgia,serif;
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
}
main { display:block; }
.wrap { max-width:1120px; margin:0 auto; padding:0 clamp(20px,5vw,56px); }
a { color:inherit; }
::selection { background:rgba(217,180,118,.3); color:var(--parchment); }
:focus-visible { outline:2px solid var(--gold-bright); outline-offset:3px; }

.caps { font-family:"Cinzel",Georgia,serif; text-transform:uppercase; }
.eyebrow { font-family:"Cinzel",Georgia,serif; text-transform:uppercase; font-size:.82rem;
  letter-spacing:.24em; color:var(--gold-dim); margin:0 0 16px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }

/* ---------- buttons ---------- */
.btn { display:inline-block; font-family:"Cinzel",Georgia,serif; font-size:.82rem;
  letter-spacing:.14em; text-transform:uppercase; color:var(--ink); background:var(--gold);
  border:1px solid var(--gold); padding:14px 26px; cursor:pointer; text-decoration:none;
  transition:background .2s, color .2s, transform .15s; }
.btn:hover { background:var(--gold-bright); transform:translateY(-1px); }
.btn.ghost { background:none; color:var(--gold-bright); }
.btn.ghost:hover { background:var(--gold); color:var(--ink); }

/* ---------- masthead ---------- */
.masthead { position:sticky; top:0; z-index:20; background:rgba(16,14,11,.92);
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  border-bottom:1px solid var(--stone-line); }
.masthead-row { display:flex; align-items:center; justify-content:space-between; gap:14px 20px;
  padding-top:18px; padding-bottom:18px; flex-wrap:wrap; }
.wordmark { font-family:"Cinzel",Georgia,serif; font-weight:600; letter-spacing:.14em;
  font-size:1rem; color:var(--parchment); text-decoration:none; white-space:nowrap; }
.wordmark:hover { color:var(--gold-bright); }
/* Nine items at a readable 13px no longer fit one row at the old gap and
   tracking. Tightening both keeps the masthead a single line rather than
   shrinking the type back down. */
nav.primary { display:flex; gap:clamp(10px,2vw,20px); flex-wrap:wrap; }
nav.primary a { font-family:"Cinzel",Georgia,serif; font-size:.82rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--parchment-dim); text-decoration:none;
  padding:4px 0 7px; position:relative; white-space:nowrap; }
nav.primary a:hover { color:var(--gold-bright); }
nav.primary a.here { color:var(--gold-bright); }
nav.primary a.here::after { content:""; position:absolute; left:0; right:0; bottom:0;
  height:1px; background:var(--gold); }

/* ---------- page hero (cinematic arrival) ---------- */
.page-hero { position:relative; min-height:clamp(420px,62vh,640px);
  display:flex; align-items:flex-end; overflow:hidden; isolation:isolate;
  border-bottom:1px solid var(--stone-line); }
.page-hero .hero-img { position:absolute; inset:0; z-index:0;
  background-position:center; background-size:cover; background-repeat:no-repeat;
  transform-origin:center; will-change:transform;
  animation:fe-kenburns 18s ease-out forwards; }
img.hero-img { width:100%; height:100%; object-fit:cover; display:block; }
@keyframes fe-kenburns { from { transform:scale(1); } to { transform:scale(1.06); } }
.page-hero::after { content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(to bottom,
    rgba(16,14,11,.42) 0%, rgba(16,14,11,.14) 26%,
    rgba(16,14,11,.34) 58%, rgba(16,14,11,.78) 84%, var(--ink) 100%); }
.hero-inner { position:relative; z-index:2; width:100%; max-width:900px; margin:0 auto;
  text-align:center;
  padding:clamp(96px,18vh,180px) clamp(20px,5vw,56px) clamp(48px,8vh,84px); }
.hero-inner .eyebrow { text-shadow:0 1px 10px rgba(0,0,0,.7); color:var(--gold-dim); }
.page-hero h1 { font-family:"Cinzel",Georgia,serif; font-weight:700; letter-spacing:.02em;
  font-size:clamp(2.4rem,6vw,4rem); line-height:1.06; margin:6px 0 14px;
  color:var(--parchment); text-wrap:balance; text-shadow:0 2px 26px rgba(0,0,0,.65); }
.hero-sub { font-style:italic; font-size:clamp(1.08rem,1.9vw,1.35rem); line-height:1.6;
  color:var(--parchment-dim); max-width:58ch; margin:0 auto;
  text-shadow:0 1px 14px rgba(0,0,0,.75); text-wrap:balance; }

/* ---------- shared section chrome (salvaged from legacy) ---------- */
section.block { padding:clamp(56px,9vh,104px) 0; border-top:1px solid var(--stone-line); }
section.block:first-of-type { border-top:none; }
.sec-head { text-align:center; margin-bottom:clamp(28px,5vh,48px); }
.sec-head h2 { font-family:"Cinzel",Georgia,serif; font-weight:600;
  font-size:clamp(1.7rem,3.4vw,2.5rem); margin:0 0 10px; color:var(--parchment); }
.sec-head .sub { font-style:italic; color:var(--parchment-dim); font-size:1.1rem;
  max-width:56ch; margin:0 auto; }
blockquote.pull { border:none; margin:30px 0; padding:20px 0;
  border-top:1px solid var(--stone-line); border-bottom:1px solid var(--stone-line);
  text-align:center; }
blockquote.pull p { font-style:italic; font-weight:600; font-size:clamp(1.25rem,2.1vw,1.5rem);
  color:var(--gold-bright); margin:0 0 8px; line-height:1.5; }
blockquote.pull cite { font-style:normal; font-family:"Cinzel",Georgia,serif; font-size:.82rem;
  letter-spacing:.2em; color:var(--gold-dim); text-transform:uppercase; }
.contact-email { font-family:"Cinzel",Georgia,serif; font-size:.95rem; letter-spacing:.04em;
  color:var(--gold-bright); text-decoration:none; border-bottom:1px solid var(--gold-dim);
  padding-bottom:3px; }
.contact-email:hover { color:var(--gold); border-color:var(--gold); }

/* ---------- scroll reveal ---------- */
/* Hiding is scoped to .fe-js (set by site.js) so content is fully
   readable when JavaScript is unavailable. */
.fe-js [data-reveal] { opacity:0; transform:translateY(14px); }
.fe-js [data-reveal].revealed { opacity:1; transform:none;
  transition:opacity .8s ease, transform .8s ease; }

/* ---------- page-entry veil (lamp bloom) ---------- */
.veil { position:fixed; inset:0; z-index:90; pointer-events:none;
  background:radial-gradient(circle at var(--vx,50%) var(--vy,45%),
    rgba(11,9,6,0) 0,
    rgba(11,9,6,0) calc(var(--vr,0px) - 110px),
    rgba(217,180,118,.05) calc(var(--vr,0px) - 48px),
    #0b0906 var(--vr,0px)); }
.veil.fade { background:#0b0906; opacity:1; transition:opacity .22s ease; }
.veil.fade.out { opacity:0; }

/* ---------- the finds (satchel tab + drawer) ---------- */
.finds-tab { position:fixed; left:16px; bottom:16px; z-index:70;
  width:44px; height:44px; padding:8px; cursor:pointer;
  background:var(--panel); border:1px solid var(--stone-line); border-radius:3px;
  color:var(--gold-dim); box-shadow:0 8px 22px rgba(0,0,0,.45);
  transition:color .25s, border-color .25s, box-shadow .4s; }
.finds-tab svg { display:block; width:100%; height:100%; }
.finds-tab:hover { color:var(--gold-bright); border-color:var(--gold-dim); }
.finds-tab.glow { color:var(--gold-bright); border-color:var(--gold-dim);
  box-shadow:0 0 0 1px var(--gold-dim), 0 0 20px rgba(217,180,118,.4),
    0 8px 22px rgba(0,0,0,.45);
  animation:fe-satchel-glow 2.8s ease-in-out infinite; }
@keyframes fe-satchel-glow {
  0%,100% { box-shadow:0 0 0 1px var(--gold-dim), 0 0 14px rgba(217,180,118,.28), 0 8px 22px rgba(0,0,0,.45); }
  50%     { box-shadow:0 0 0 1px var(--gold-dim), 0 0 26px rgba(217,180,118,.5),  0 8px 22px rgba(0,0,0,.45); }
}

.finds-drawer { position:fixed; left:0; bottom:0; z-index:80;
  width:min(360px,94vw); max-height:min(70vh,520px); overflow-y:auto;
  background:var(--panel);
  border-top:1px solid var(--gold-dim); border-right:1px solid var(--gold-dim);
  box-shadow:0 -18px 50px rgba(0,0,0,.55);
  transform:translateY(105%); visibility:hidden;
  transition:transform .45s cubic-bezier(.6,0,.3,1), visibility 0s .45s; }
.finds-drawer.open { transform:none; visibility:visible;
  transition:transform .45s cubic-bezier(.6,0,.3,1), visibility 0s 0s; }
.finds-head { display:flex; justify-content:space-between; align-items:center;
  padding:16px 20px 12px; border-bottom:1px solid var(--stone-line); }
.finds-eyebrow { font-family:"Cinzel",Georgia,serif; font-size:.82rem; letter-spacing:.22em;
  text-transform:uppercase; color:var(--gold-dim); }
.finds-close { background:none; border:1px solid var(--stone-line); color:var(--parchment-dim);
  font-family:"Cinzel",Georgia,serif; font-size:.82rem; letter-spacing:.12em;
  text-transform:uppercase; padding:6px 11px; cursor:pointer; }
.finds-close:hover { color:var(--gold-bright); border-color:var(--gold-dim); }

.finds-list { list-style:none; margin:0; padding:8px 20px 4px; }
.find-row { display:flex; align-items:center; gap:12px; padding:10px 2px;
  border-bottom:1px solid rgba(156,130,86,.24); min-height:42px; }
.find-row:last-child { border-bottom:1px solid rgba(156,130,86,.24); }
.find-ic { flex:0 0 22px; width:22px; height:22px; color:var(--gold); }
.find-ic svg { display:block; width:100%; height:100%; }
.find-row .find-name { font-family:"IM Fell",Georgia,serif; font-size:1.02rem;
  color:var(--parchment); letter-spacing:.02em; }
.find-row.missing .find-ic { opacity:0; }
.find-row .find-line { color:var(--stone-line); letter-spacing:.14em; font-size:.95rem; }
.find-row .find-miss { margin-left:auto; font-family:"IM Fell",Georgia,serif; font-style:italic;
  font-size:.86rem; color:var(--parchment-dim); opacity:.65; }

.finds-note { display:block; margin:0; padding:16px 22px 4px;
  font-family:"La Belle Aurore",cursive; font-size:1.18rem; line-height:1.5;
  color:#c9b384; opacity:0; transform:translateY(4px);
  transition:opacity 1.6s ease .3s, transform 1.6s ease .3s; pointer-events:none; }
.finds-drawer.complete .finds-note { opacity:1; transform:none; }

/* ---------- the field notebook: sections, cards, print ---------- */
.nb-section { border-top:1px solid var(--stone-line); }
.nb-section:first-of-type { border-top:none; }
.nb-sub { font-family:"Cinzel",Georgia,serif; font-size:.82rem; letter-spacing:.22em;
  text-transform:uppercase; color:var(--gold-dim); margin:0; padding:14px 22px 0; }
.cards-list { list-style:none; margin:0; padding:8px 20px 4px; }
.cards-empty { font-family:"IM Fell",Georgia,serif; font-style:italic; font-size:.92rem;
  color:var(--parchment-dim); opacity:.7; padding:6px 2px 10px; }
.fe-card { display:flex; align-items:flex-start; gap:12px; padding:10px 2px;
  border-bottom:1px solid rgba(156,130,86,.2); }
.fe-card:last-child { border-bottom:none; }
.fe-card-ic { flex:0 0 22px; width:22px; height:22px; color:var(--gold); margin-top:1px; }
.fe-card-ic svg { display:block; width:100%; height:100%; }
.fe-card-body { display:flex; flex-direction:column; gap:2px; }
.fe-card-name { font-family:"IM Fell",Georgia,serif; font-size:1.02rem; color:var(--parchment); letter-spacing:.02em; }
.fe-card-note { font-family:"Cormorant Garamond",Georgia,serif; font-style:italic;
  font-size:.92rem; color:var(--parchment-dim); }
.nb-print { display:block; width:calc(100% - 44px); margin:6px 22px 20px; cursor:pointer;
  background:none; border:1px solid var(--stone-line); color:var(--parchment-dim);
  font-family:"Cinzel",Georgia,serif; font-size:.82rem; letter-spacing:.16em;
  text-transform:uppercase; padding:11px 10px; transition:color .2s, border-color .2s; }
.nb-print:hover { color:var(--gold-bright); border-color:var(--gold-dim); }

/* ---------- print sheet (Save as PDF of the notebook) ---------- */
.fe-print-sheet { display:none; }
@media print {
  body > *:not(#fe-print-sheet) { display:none !important; }
  #fe-print-sheet { display:block !important; }
  .fe-print-sheet .ps-inner { max-width:640px; margin:0 auto; padding:20px;
    font-family:Georgia, "Times New Roman", serif; color:#1a1a1a; }
  .fe-print-sheet .ps-head { text-align:center; border-bottom:2px solid #333; padding-bottom:14px; margin-bottom:20px; }
  .fe-print-sheet h1 { font-size:30px; letter-spacing:.04em; margin:0 0 6px; }
  .fe-print-sheet .ps-sub { font-style:italic; color:#555; margin:0; }
  .fe-print-sheet .ps-owner { text-align:center; font-style:italic; margin:0 0 18px; }
  .fe-print-sheet h2 { font-size:15px; letter-spacing:.14em; text-transform:uppercase;
    border-bottom:1px solid #999; padding-bottom:5px; margin:22px 0 10px; }
  .fe-print-sheet .ps-list { list-style:none; margin:0; padding:0; }
  .fe-print-sheet .ps-list li { padding:5px 0; font-size:15px; border-bottom:1px dotted #ccc; }
  .fe-print-sheet .ps-none { font-style:italic; color:#666; }
  .fe-print-sheet .ps-foot { margin-top:30px; text-align:center; font-size:13px;
    letter-spacing:.14em; text-transform:uppercase; color:#777; }
}

/* ---------- toast ---------- */
.toast { position:fixed; bottom:26px; left:50%;
  transform:translateX(-50%) translateY(20px);
  background:var(--panel); border:1px solid var(--gold-dim); color:var(--gold-bright);
  font-family:"Cormorant Garamond",Georgia,serif;
  font-style:italic; font-size:1.05rem; padding:12px 26px;
  max-width:min(560px,88vw); text-align:center;
  opacity:0; pointer-events:none;
  transition:opacity .4s, transform .4s; z-index:85; }
.toast.on { opacity:1; transform:translateX(-50%) translateY(0); }

/* ---------- footer ---------- */
.site-foot { border-top:1px solid var(--stone-line); background:var(--ink-2); }
.footer-row { display:flex; justify-content:space-between; align-items:center; gap:12px 18px;
  padding-top:26px; padding-bottom:26px; flex-wrap:wrap; }
.copyright { font-size:.82rem; color:var(--parchment-dim); letter-spacing:.03em; }
.foot-motto { font-style:italic; }
.site-foot a { color:var(--gold-dim); text-decoration:none;
  border-bottom:1px solid var(--stone-line); padding-bottom:2px; }
.site-foot a:hover { color:var(--gold-bright); border-color:var(--gold-dim); }
.mute-toggle { background:none; border:none; cursor:pointer; padding:2px 0;
  font-family:"Cinzel",Georgia,serif; font-size:.82rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--parchment-dim);
  border-bottom:1px solid var(--stone-line); }
.mute-toggle:hover { color:var(--gold-bright); border-color:var(--gold-dim); }

/* ---------- the excavation permit (finds payoff) ---------- */
.permit-cta { display:block; width:calc(100% - 44px); margin:0 22px 20px;
  background:var(--gold); color:var(--ink); border:1px solid var(--gold);
  font-family:"Cinzel",Georgia,serif; font-size:.82rem; letter-spacing:.16em;
  text-transform:uppercase; padding:12px 10px; cursor:pointer; text-align:center;
  transition:background .2s; }
.permit-cta:hover { background:var(--gold-bright); }

.permit-modal { position:fixed; inset:0; z-index:96; display:none;
  align-items:center; justify-content:center; padding:18px;
  background:rgba(8,7,5,.78); }
.permit-modal.open { display:flex; }
.permit-inner { background:var(--panel); border:1px solid var(--gold-dim);
  box-shadow:0 40px 90px rgba(0,0,0,.7); width:min(680px,96vw);
  max-height:92vh; overflow-y:auto; padding:26px 26px 30px; }
.permit-inner .pm-head { display:flex; justify-content:space-between; align-items:center;
  margin-bottom:16px; }
.permit-inner .pm-eyebrow { font-family:"Cinzel",Georgia,serif; font-size:.82rem;
  letter-spacing:.22em; text-transform:uppercase; color:var(--gold-dim); }
.permit-inner .pm-close { background:none; border:1px solid var(--stone-line);
  color:var(--parchment-dim); font-family:"Cinzel",Georgia,serif; font-size:.82rem;
  letter-spacing:.12em; text-transform:uppercase; padding:6px 11px; cursor:pointer; }
.permit-inner .pm-close:hover { color:var(--gold-bright); border-color:var(--gold-dim); }
.permit-inner p.pm-lede { font-style:italic; color:var(--parchment-dim); font-size:1.05rem;
  line-height:1.6; margin:0 0 18px; }
.permit-form { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:18px; }
.permit-form input { flex:1; min-width:200px; background:var(--ink-2);
  border:1px solid var(--stone-line); color:var(--parchment);
  font-family:"Cormorant Garamond",Georgia,serif; font-size:1.05rem; padding:11px 13px; }
.permit-form input::placeholder { color:var(--parchment-dim); opacity:.7; }
.permit-form button { background:var(--gold); color:var(--ink); border:1px solid var(--gold);
  font-family:"Cinzel",Georgia,serif; font-size:.82rem; letter-spacing:.14em;
  text-transform:uppercase; padding:11px 18px; cursor:pointer; }
.permit-form button:hover { background:var(--gold-bright); }
.permit-canvas-wrap { display:none; }
.permit-canvas-wrap.on { display:block; }
.permit-canvas-wrap canvas { display:block; width:100%; height:auto;
  border:1px solid var(--gold-dim); box-shadow:0 18px 44px rgba(0,0,0,.5); }
.permit-dl { margin-top:16px; text-align:center; }

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  .page-hero .hero-img { animation:none; }
  .fe-js [data-reveal] { opacity:1; transform:none; transition:none; }
  .fe-js [data-reveal].revealed { transition:none; }
  .finds-drawer { transition:visibility 0s; }
  .finds-tab.glow { animation:none; }
  .finds-note { transition:opacity .2s ease; }
  .toast { transition:opacity .2s; transform:translateX(-50%); }
  .toast.on { transform:translateX(-50%); }
  .btn:hover { transform:none; }
}

/* ---------- small screens ---------- */
@media (max-width:560px) {
  .masthead-row { justify-content:center; text-align:center; }
  nav.primary { justify-content:center; }
  .footer-row { justify-content:center; text-align:center; }
  .finds-drawer { width:100vw; border-right:none; }
}
