:root{
  --bg:#F1F0EC;
  --ink:#17181C;
  --line:#D9D7CF;
  --ember:#A3341F;
  --indigo:#2F3C67;
  --steel:#35607A;
  --radius:2px;
  --maxw:960px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:'Inter',system-ui,sans-serif;
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{
  font-family:'Fraunces',Georgia,serif;
  font-weight:600;
  line-height:1.12;
  margin:0 0 .4em;
  letter-spacing:-.01em;
}
a{color:var(--ink);}
p{margin:0 0 1em;}
img{max-width:100%;display:block;}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;}

.site-header{border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg);z-index:10;}
.header-inner{max-width:var(--maxw);margin:0 auto;padding:18px 24px;display:flex;align-items:center;justify-content:space-between;}
.brand{font-family:'IBM Plex Mono',monospace;font-weight:500;font-size:.85rem;letter-spacing:.06em;text-decoration:none;text-transform:uppercase;}
.nav-toggle{display:none;}
.nav-burger{display:none;font-size:1.4rem;cursor:pointer;}
.site-nav{display:flex;gap:28px;}
.site-nav a{text-decoration:none;font-size:.9rem;color:var(--ink);opacity:.7;transition:opacity .15s;}
.site-nav a:hover,.site-nav a:focus-visible{opacity:1;}

@media(max-width:640px){
  .nav-burger{display:block;}
  .site-nav{
    display:none;flex-direction:column;position:absolute;top:100%;left:0;right:0;
    background:var(--bg);border-bottom:1px solid var(--line);padding:16px 24px;gap:16px;
  }
  .nav-toggle:checked ~ .site-nav{display:flex;}
}

.hero{max-width:var(--maxw);margin:0 auto;padding:80px 24px 44px;}
.eyebrow{
  font-family:'IBM Plex Mono',monospace;font-size:.72rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ember);margin:0 0 16px;
}
.hero h1{font-size:2.7rem;max-width:15ch;}
.lede{font-size:1.15rem;max-width:44ch;opacity:.78;}

.btn{
  display:inline-block;padding:12px 22px;border-radius:var(--radius);
  text-decoration:none;font-size:.95rem;font-weight:500;border:1px solid var(--ink);
  transition:background .15s,color .15s;
}
.btn-primary{background:var(--ink);color:var(--bg);}
.btn-primary:hover,.btn-primary:focus-visible{background:var(--indigo);border-color:var(--indigo);}
.btn-outline{background:transparent;color:var(--ink);}
.btn-outline:hover,.btn-outline:focus-visible{background:var(--ink);color:var(--bg);}

.archive-rail{max-width:var(--maxw);margin:0 auto;padding:24px 24px 0;}
.rail-label{font-family:'IBM Plex Mono',monospace;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;opacity:.5;margin-bottom:14px;}
.rail-inner{display:flex;gap:12px;flex-wrap:wrap;align-items:stretch;border-bottom:3px solid var(--ink);padding-bottom:0;}
.tab{
  background:#fff;border:1px solid var(--line);border-bottom:none;
  border-top:3px solid var(--ink);
  padding:14px 16px 16px;min-width:132px;flex:1 1 132px;
  text-decoration:none;color:var(--ink);
  transition:transform .15s;
}
.tab:hover,.tab:focus-visible{transform:translateY(-3px);}
.tab .code{display:block;font-family:'IBM Plex Mono',monospace;font-size:.7rem;opacity:.55;margin-bottom:6px;}
.tab .name{display:block;font-family:'Fraunces',serif;font-size:.92rem;line-height:1.3;}
.tab.t-ember{border-top-color:var(--ember);}
.tab.t-indigo{border-top-color:var(--indigo);}
.tab.t-steel{border-top-color:var(--steel);}

.about-teaser{max-width:var(--maxw);margin:0 auto;padding:40px 24px 84px;font-size:.98rem;opacity:.85;}
.about-teaser a{color:var(--indigo);}

.page-head{max-width:var(--maxw);margin:0 auto;padding:68px 24px 6px;}
.page-head .eyebrow{margin-bottom:12px;}
.page-head h1{font-size:2.1rem;}

.book-grid{max-width:var(--maxw);margin:0 auto;padding:32px 24px 80px;display:grid;grid-template-columns:1fr 1fr;gap:22px;}
@media(max-width:700px){.book-grid{grid-template-columns:1fr;}}
.book-card{
  background:#fff;border:1px solid var(--line);border-top:3px solid var(--ink);
  padding:20px 20px 22px;display:flex;flex-direction:column;position:relative;
}
.book-card.t-ember{border-top-color:var(--ember);}
.book-card.t-indigo{border-top-color:var(--indigo);}
.book-card.t-steel{border-top-color:var(--steel);}
.card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;}
.book-card .code{font-family:'IBM Plex Mono',monospace;font-size:.72rem;opacity:.5;}
.stamp{
  font-family:'IBM Plex Mono',monospace;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;
  border:1.5px solid var(--ember);color:var(--ember);padding:3px 8px;border-radius:2px;
  transform:rotate(-3deg);white-space:nowrap;
}
.card-body{display:flex;gap:18px;flex-grow:1;}
.book-cover{width:104px;flex-shrink:0;object-fit:cover;border:1px solid var(--line);box-shadow:2px 2px 0 rgba(0,0,0,.06);}
.card-text{display:flex;flex-direction:column;flex-grow:1;min-width:0;}
.book-card .series{font-size:.76rem;text-transform:uppercase;letter-spacing:.05em;opacity:.55;margin:0 0 8px;}
.book-card h2{font-size:1.18rem;margin-bottom:8px;}
.book-card .blurb{opacity:.85;flex-grow:1;font-size:.95rem;}
.book-card .btn{align-self:flex-start;margin-top:14px;}

.file-block{max-width:640px;margin:0 auto;padding:0 24px 28px;display:flex;gap:20px;align-items:flex-end;border-bottom:1px solid var(--line);margin-bottom:28px;}
.file-photo{width:96px;height:120px;object-fit:cover;border:1px solid var(--line);flex-shrink:0;}
.file-label{
  font-family:'IBM Plex Mono',monospace;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;
  opacity:.5;padding-bottom:8px;
}
.prose{max-width:640px;margin:0 auto;padding:0 24px 80px;}
.prose p{font-size:1.02rem;}

.contact-card{max-width:520px;margin:0 auto;padding:24px 24px 96px;text-align:left;}
.contact-card .location{margin-top:18px;opacity:.6;font-size:.9rem;}

.site-footer{border-top:1px solid var(--line);padding:28px 24px;font-size:.85rem;opacity:.6;}
.site-footer p{margin:0;max-width:var(--maxw);margin-left:auto;margin-right:auto;font-family:'IBM Plex Mono',monospace;font-size:.78rem;}
.site-footer a{color:inherit;}

:focus-visible{outline:2px solid var(--indigo);outline-offset:2px;}
@media(prefers-reduced-motion:reduce){*{transition:none !important;}}
@media(max-width:420px){.card-body{flex-direction:column;}.book-cover{width:100%;height:auto;max-width:160px;}}

/* --- Larger book covers --- */

:root{
  --maxw:1100px;
}

.card-body{
  display:flex;
  gap:22px;
  flex-grow:1;
  align-items:flex-start;
}

.book-cover{
  width:160px;
  height:auto;
  aspect-ratio:2/3;
  flex-shrink:0;
  object-fit:cover;
  border:1px solid var(--line);
  box-shadow:3px 3px 0 rgba(0,0,0,.06);
}

.cover-placeholder{
  min-height:240px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--bg);
  font-family:'IBM Plex Mono',monospace;
  font-size:.65rem;
  opacity:.45;
  text-align:center;
}

@media(max-width:700px){
  .book-grid{
    grid-template-columns:1fr;
  }

  .book-cover{
    width:150px;
  }
}

@media(max-width:520px){
  .card-body{
    flex-direction:column;
  }

  .book-cover{
    width:100%;
    max-width:220px;
    height:auto;
    margin:0 auto;
  }

  .card-text{
    width:100%;
  }
}

