/* =============================================================
   OLD FORGE · HOME (index.html) — page-specific styles
   Tokens, primitives, and masthead live in letterpress.css.
   ============================================================= */

/* ============================================================
   HERO — editorial, asymmetric. Not centered. Not a SaaS hero.
   ============================================================ */
.hero{
  position:relative;
  padding:clamp(3rem,8vw,7rem) 0 clamp(4rem,9vw,8rem);
  overflow:hidden;
}

.hero__plate{
  display:grid;
  grid-template-columns:1.25fr 1fr;
  gap:clamp(2rem,5vw,5rem);
  align-items:start;
}

/* Folio mark — big roman numeral in the margin */
.hero__folio{
  position:absolute;
  top:clamp(1.5rem,3vw,3rem);
  right:var(--page);
  font-family:var(--serif);
  font-variation-settings:"opsz" 144,"SOFT" 20,"wght" 300;
  font-style:italic;
  font-size:clamp(3rem,6vw,5rem);
  line-height:1;
  color:var(--ember);
  opacity:.85;
  pointer-events:none;
  user-select:none;
}

.hero__dateline{
  font-family:var(--mono);
  font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--text-muted);
  margin-bottom:clamp(1.5rem,3vw,2.5rem);
  display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;
}
.hero__dateline .dot{width:5px;height:5px;background:var(--ember);border-radius:50%;display:inline-block}

.hero__headline{
  font-variation-settings:"opsz" 144,"SOFT" 60,"wght" 380;
  font-size:clamp(3rem,1.5rem + 7vw,7.5rem);
  line-height:.92;
  letter-spacing:-.028em;
  color:var(--text);
  margin:0 0 clamp(1.5rem,3vw,2.5rem);
}
.hero__headline .hl-italic{
  font-style:italic;
  font-variation-settings:"opsz" 144,"SOFT" 100,"wght" 340;
  color:var(--ember);
  display:inline-block;
  position:relative;
}
.hero__lede{
  font-family:var(--serif);
  font-variation-settings:"opsz" 18,"SOFT" 40,"wght" 380;
  font-size:clamp(1.05rem,.95rem + .4vw,1.25rem);
  line-height:1.55;
  color:var(--text);
  max-width:42ch;
  margin-bottom:clamp(1.75rem,3vw,2.5rem);
}

.hero__signature{
  font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--text-muted);
  display:flex;gap:1.25rem;flex-wrap:wrap;align-items:center;
}
.hero__signature strong{color:var(--ember);font-weight:500}

/* Portrait column */
.hero__portrait{
  position:relative;
  align-self:stretch;
}
.hero__portrait-frame{
  position:relative;
  aspect-ratio:4/5;
  background:var(--ink);
  overflow:hidden;
  box-shadow:
    0 2px 0 var(--paper-edge),
    0 30px 60px -30px rgba(0,0,0,.5),
    inset 0 0 0 1px var(--ink);
}
.hero__portrait-frame img{
  width:100%;height:100%;object-fit:cover;object-position:center 30%;
  filter:grayscale(.2) contrast(1.05) sepia(.15);
  mix-blend-mode:multiply;
}
/* Duotone tint overlay */
.hero__portrait-frame::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(20,17,13,.15),rgba(200,68,28,.08) 60%,rgba(20,17,13,.4));
  pointer-events:none;
}
.hero__portrait-caption{
  font-family:var(--mono);font-size:11px;letter-spacing:.08em;
  color:var(--text-muted);
  margin-top:.75rem;
  line-height:1.45;
  display:flex;justify-content:space-between;gap:1rem;
}
.hero__portrait-caption em{font-style:italic;color:var(--text)}
.hero__portrait-caption .plate{
  font-family:var(--serif);font-style:italic;
  font-variation-settings:"opsz" 18,"wght" 400;
  color:var(--ember);
  font-size:12px;letter-spacing:0;
  text-transform:none;
}

/* --- Hero: "In this edition" contents sidebar --- */
.hero__toc{
  position:relative;
  padding:1.1rem 0 0;
  border-top:2px solid var(--ember);
  align-self:start;
}
.hero__toc-kicker{
  font-family:var(--mono);font-size:10px;font-weight:500;
  letter-spacing:.28em;text-transform:uppercase;
  color:var(--ember);
  margin-bottom:1.5rem;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
}
.hero__toc-kicker .vol{color:var(--text-muted);letter-spacing:.2em}
.hero__toc-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule-soft)}
.hero__toc-item{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:.9rem;
  align-items:baseline;
  padding:.7rem 0;
  border-bottom:1px solid var(--rule-soft);
  text-decoration:none;
  color:var(--text);
  position:relative;
  transition:color .2s ease, padding-left .2s ease;
}
.hero__toc-item::before{
  content:"";
  position:absolute;left:-.5rem;top:50%;transform:translateY(-50%);
  width:4px;height:4px;background:var(--ember);border-radius:50%;
  opacity:0;transition:opacity .2s ease;
}
.hero__toc-item:hover{color:var(--ember);padding-left:.5rem}
.hero__toc-item:hover::before{opacity:1}
.hero__toc-item:focus-visible{outline:2px solid var(--ember);outline-offset:3px}

.hero__toc-num{
  font-family:var(--mono);font-size:10px;letter-spacing:.14em;
  color:var(--ember);font-weight:500;
  padding-top:.3em;
  white-space:nowrap;
}
.hero__toc-title{
  font-family:var(--serif);
  font-variation-settings:"opsz" 18,"SOFT" 50,"wght" 460;
  font-size:1.08rem;
  line-height:1.25;
  letter-spacing:-.005em;
}
.hero__toc-title em{
  display:block;
  margin-top:.15rem;
  font-style:italic;
  font-variation-settings:"opsz" 18,"SOFT" 90,"wght" 360;
  font-size:.84em;
  color:var(--text-muted);
}
.hero__toc-foot{
  margin-top:1.4rem;
  padding-top:1rem;
  border-top:1px solid var(--rule-soft);
  font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--text-faint);
  display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;
}
.hero__toc-foot em{
  font-family:var(--serif);font-style:italic;
  font-variation-settings:"opsz" 18,"SOFT" 80,"wght" 380;
  font-size:12px;color:var(--ember);
  letter-spacing:0;text-transform:none;
}

@media (max-width:860px){
  .hero__plate{grid-template-columns:1fr;gap:2.5rem}
  .hero__portrait{order:-1;max-width:360px}
  .hero__toc{order:2}
  .hero__folio{font-size:3rem;top:1rem}
}

/* ============================================================
   MANIFESTO — a note from the proprietor, set like a letter.
   ============================================================ */
.manifesto{
  position:relative;
  padding:clamp(3rem,6vw,6rem) 0;
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  background:var(--paper-warm);
}

.manifesto__inner{
  max-width:56ch;
  margin:0 auto;
  text-align:left;
  position:relative;
}

.manifesto__kicker{
  text-align:center;
  margin-bottom:2rem;
  font-family:var(--mono);font-size:11px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--ember);
  display:flex;align-items:center;justify-content:center;gap:1rem;
}
.manifesto__kicker::before,
.manifesto__kicker::after{
  content:"";flex:0 0 40px;height:1px;background:var(--ember);
}

.manifesto__body{
  font-family:var(--serif);
  font-variation-settings:"opsz" 18,"SOFT" 50,"wght" 380;
  font-size:clamp(1.05rem,.95rem + .4vw,1.3rem);
  line-height:1.62;
  color:var(--text);
  font-feature-settings:"onum","liga";
  text-align:left;
  hyphens:auto;
}

/* Drop cap — the T of "Twenty" */
.manifesto__body::first-letter{
  font-family:var(--serif);
  font-variation-settings:"opsz" 144,"SOFT" 80,"wght" 620;
  font-size:clamp(4rem,8vw,6.5rem);
  float:left;
  line-height:.82;
  padding:.1em .18em 0 0;
  color:var(--ember);
  font-feature-settings:"ss01";
}

.manifesto__signoff{
  margin-top:2rem;
  font-family:var(--serif);font-style:italic;
  font-variation-settings:"opsz" 18,"SOFT" 80,"wght" 420;
  color:var(--text-muted);
  font-size:1rem;
}
.manifesto__signoff .sig{
  font-family:var(--serif);font-style:italic;
  font-variation-settings:"opsz" 144,"SOFT" 100,"wght" 500;
  font-size:1.5rem;
  color:var(--ember);
  margin-right:.5rem;
}

/* ============================================================
   DISCIPLINES — services as chapter entries, not cards.
   Numbered plates.
   ============================================================ */
.disciplines{
  position:relative;
  padding:clamp(4rem,8vw,7rem) 0;
  background:var(--paper);
}

.section-head{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:1.5rem;
  align-items:end;
  margin-bottom:clamp(2.5rem,5vw,4.5rem);
  padding-bottom:1.25rem;
  border-bottom:2px solid var(--rule);
  position:relative;
}
.section-head::after{
  content:"";position:absolute;left:0;bottom:-6px;width:80px;height:2px;background:var(--ember);
}
.section-head h2{
  font-variation-settings:"opsz" 144,"SOFT" 40,"wght" 400;
  font-size:clamp(2rem,1.2rem + 3.5vw,3.75rem);
  letter-spacing:-.025em;
  line-height:.95;
}
.section-head h2 em{
  font-style:italic;
  font-variation-settings:"opsz" 144,"SOFT" 90,"wght" 340;
  color:var(--ember);
}
.section-head__num{
  font-family:var(--mono);
  font-size:12px;font-weight:500;
  color:var(--text-muted);letter-spacing:.2em;text-transform:uppercase;
  padding-bottom:.4rem;
}
.section-head__meta{
  font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--text-faint);text-align:right;
  padding-bottom:.5rem;
  line-height:1.4;
}

.disciplines__list{
  list-style:none;
  border-top:1px solid var(--rule-soft);
}
.discipline{
  display:grid;
  grid-template-columns:90px 1fr 1.5fr auto;
  gap:clamp(1rem,3vw,3rem);
  align-items:baseline;
  padding:clamp(1.5rem,3vw,2rem) 0;
  border-bottom:1px solid var(--rule-soft);
  position:relative;
  transition:background .2s ease,padding .2s ease;
}
.discipline:hover{
  background:var(--paper-warm);
  padding-left:1rem;padding-right:1rem;
  margin-left:-1rem;margin-right:-1rem;
}
.discipline::before{
  content:"";position:absolute;left:0;top:0;bottom:0;
  width:2px;background:var(--ember);
  transform:scaleY(0);transform-origin:center;transition:transform .3s ease;
}
.discipline:hover::before{transform:scaleY(1)}

.discipline__num{
  font-family:var(--serif);font-style:italic;
  font-variation-settings:"opsz" 144,"SOFT" 60,"wght" 300;
  font-size:clamp(2rem,3vw,3rem);
  color:var(--ember);
  line-height:1;
}
.discipline__title{
  font-family:var(--serif);
  font-variation-settings:"opsz" 48,"SOFT" 40,"wght" 480;
  font-size:clamp(1.4rem,1rem + 1.2vw,2rem);
  line-height:1.1;
  letter-spacing:-.015em;
}
.discipline__title em{
  font-style:italic;
  font-variation-settings:"opsz" 48,"SOFT" 90,"wght" 380;
  color:var(--text-muted);
  font-size:.8em;
  display:block;
  margin-top:.25rem;
}
.discipline__body{
  font-family:var(--serif);
  font-variation-settings:"opsz" 14,"SOFT" 40,"wght" 400;
  font-size:clamp(.95rem,.9rem + .15vw,1.05rem);
  color:var(--text-muted);
  line-height:1.55;
  max-width:42ch;
}
.discipline__link{
  font-family:var(--mono);font-size:12px;letter-spacing:.15em;text-transform:uppercase;
  color:var(--text);text-decoration:none;
  border-bottom:1px solid var(--text);
  padding-bottom:2px;
  white-space:nowrap;
  transition:color .18s ease,border-color .18s ease;
}
.discipline__link:hover{color:var(--ember);border-color:var(--ember)}
.discipline__link .arr{display:inline-block;margin-left:.4em;transition:transform .2s ease}
.discipline:hover .discipline__link .arr{transform:translateX(4px)}

@media (max-width:860px){
  .discipline{grid-template-columns:60px 1fr;gap:1rem 1.25rem}
  .discipline__body{grid-column:1/-1;padding-left:calc(60px + 1.25rem)}
  .discipline__link{grid-column:1/-1;padding-left:calc(60px + 1.25rem);justify-self:start}
  .discipline__num{font-size:1.8rem}
}

/* ============================================================
   FEATURED — Wegweiser, a dispatch from the workshop.
   Dark "ink" section for the first time — like turning the page
   into the workshop at night.
   ============================================================ */
.dispatch{
  background:var(--ink);
  color:var(--paper);
  position:relative;
  padding:clamp(4rem,8vw,7rem) 0;
  overflow:hidden;
}
.dispatch::before{
  /* Ember glow — low, warm, off to one side */
  content:"";position:absolute;
  left:-200px;top:50%;
  width:600px;height:600px;
  background:radial-gradient(circle,var(--ember-glow),transparent 65%);
  filter:blur(40px);
  transform:translateY(-50%);
  pointer-events:none;
  opacity:.7;
}
.dispatch h2{color:var(--paper)}
.dispatch h2 em{color:var(--ember-hot)}
.dispatch .section-head{border-bottom-color:rgba(240,231,210,.18)}
.dispatch .section-head::after{background:var(--ember-hot)}
.dispatch .section-head__num,
.dispatch .section-head__meta{color:var(--paper-deep)}

.dispatch__body{
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:clamp(2rem,5vw,5rem);
  align-items:start;
}

.dispatch__lede{
  font-family:var(--serif);
  font-variation-settings:"opsz" 72,"SOFT" 50,"wght" 400;
  font-size:clamp(1.5rem,1.1rem + 1.5vw,2.25rem);
  line-height:1.25;
  color:var(--paper);
  letter-spacing:-.012em;
  margin-bottom:1.5rem;
}
.dispatch__lede em{
  font-style:italic;
  color:var(--ember-hot);
  font-variation-settings:"opsz" 72,"SOFT" 90,"wght" 380;
}

.dispatch__text p{
  font-family:var(--serif);
  font-variation-settings:"opsz" 18,"SOFT" 40,"wght" 380;
  color:var(--paper-deep);
  line-height:1.62;
  margin-bottom:1.25rem;
  max-width:55ch;
  font-size:clamp(1rem,.95rem + .2vw,1.1rem);
}

.dispatch__cta{
  display:inline-flex;align-items:center;gap:.75rem;
  font-family:var(--mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ember-hot);
  text-decoration:none;
  padding:.75rem 0;
  border-top:1px solid var(--ember-hot);
  border-bottom:1px solid var(--ember-hot);
  margin-top:.5rem;
  transition:color .2s ease,letter-spacing .25s ease;
}
.dispatch__cta:hover{color:var(--paper);letter-spacing:.22em}

/* Facts sidebar */
.dispatch__facts{
  border:1px solid rgba(240,231,210,.18);
  padding:clamp(1.5rem,3vw,2.25rem);
  background:rgba(200,68,28,.04);
  position:relative;
}
.dispatch__facts::before{
  content:"";position:absolute;top:-1px;left:-1px;right:-1px;height:4px;
  background:linear-gradient(90deg,transparent,var(--ember-hot),transparent);
}
.dispatch__facts-logo{
  display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;
  padding-bottom:1.25rem;border-bottom:1px solid rgba(240,231,210,.15);
}
.dispatch__facts-logo img{
  width:52px;height:52px;object-fit:contain;
  filter:brightness(1.1);
}
.dispatch__facts-logo h3{
  font-family:var(--serif);
  font-variation-settings:"opsz" 72,"SOFT" 50,"wght" 520;
  font-size:1.75rem;color:var(--paper);letter-spacing:-.015em;
  line-height:1;
}
.dispatch__facts-logo small{
  display:block;font-family:var(--mono);font-size:10px;
  letter-spacing:.18em;text-transform:uppercase;color:var(--ember-hot);
  margin-top:.4rem;
}
.dispatch__facts dl{
  display:grid;gap:1rem;
}
.dispatch__facts dt{
  font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--paper-deep);
  margin-bottom:.3rem;
  opacity:.7;
}
.dispatch__facts dd{
  font-family:var(--serif);
  font-variation-settings:"opsz" 14,"SOFT" 40,"wght" 420;
  color:var(--paper);
  font-size:.98rem;
  line-height:1.4;
}
.dispatch__facts dd em{
  font-style:italic;color:var(--ember-hot);
}

@media (max-width:860px){
  .dispatch__body{grid-template-columns:1fr;gap:2.5rem}
}

/* ============================================================
   CATALOG — other products as an editorial index.
   A bibliography of things made.
   ============================================================ */
.catalog{
  padding:clamp(4rem,8vw,7rem) 0;
  background:var(--paper);
}

.catalog__list{
  list-style:none;
  counter-reset:cat;
  border-top:1px solid var(--rule);
}
.catalog__item{
  display:grid;
  grid-template-columns:60px 1.1fr 1.4fr 130px;
  gap:clamp(1rem,3vw,2.5rem);
  align-items:baseline;
  padding:clamp(1rem,2.5vw,1.5rem) 0;
  border-bottom:1px solid var(--rule-soft);
  font-family:var(--serif);
  counter-increment:cat;
  transition:background .18s ease;
  position:relative;
}
.catalog__item:hover{background:var(--paper-warm)}

.catalog__num{
  font-family:var(--mono);
  font-size:12px;letter-spacing:.1em;
  color:var(--text-muted);
}
.catalog__num::before{content:counter(cat,decimal-leading-zero) " /";color:var(--ember)}

.catalog__title{
  font-family:var(--serif);
  font-variation-settings:"opsz" 48,"SOFT" 40,"wght" 500;
  font-size:clamp(1.15rem,1rem + .6vw,1.45rem);
  letter-spacing:-.012em;
  line-height:1.15;
}
.catalog__title em{
  display:block;
  font-style:italic;
  font-variation-settings:"opsz" 18,"SOFT" 80,"wght" 360;
  font-size:.75em;
  color:var(--text-muted);
  margin-top:.15rem;
}
.catalog__desc{
  font-family:var(--serif);
  font-variation-settings:"opsz" 14,"SOFT" 40,"wght" 400;
  font-size:.95rem;
  color:var(--text-muted);
  line-height:1.5;
  max-width:46ch;
}
.catalog__status{
  font-family:var(--mono);
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--text);
  white-space:nowrap;
  padding:.35rem .6rem;
  border:1px solid var(--rule);
  display:inline-block;
  line-height:1;
  justify-self:end;
}
.catalog__status--live{color:var(--ember);border-color:var(--ember)}
.catalog__status--dev{color:var(--text-muted);border-style:dashed}
.catalog__status--paper{
  color:var(--steel);border-color:var(--steel);
}

@media (max-width:860px){
  .catalog__item{grid-template-columns:50px 1fr;gap:.5rem 1rem}
  .catalog__desc{grid-column:1/-1;padding-left:calc(50px + 1rem)}
  .catalog__status{grid-column:2/3;justify-self:start;margin-top:.4rem}
}

/* ============================================================
   PROFILE — a magazine profile of the proprietor.
   Dark section again — the forge at night.
   ============================================================ */
.profile{
  background:var(--ink);
  color:var(--paper);
  padding:clamp(4rem,9vw,8rem) 0;
  position:relative;
  overflow:hidden;
}
.profile::before{
  content:"";position:absolute;
  right:-300px;top:-100px;
  width:700px;height:700px;
  background:radial-gradient(circle,rgba(200,68,28,.18),transparent 65%);
  filter:blur(60px);pointer-events:none;
}

.profile__head{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:1.5rem;align-items:end;
  margin-bottom:clamp(2.5rem,5vw,4rem);
  padding-bottom:1.25rem;
  border-bottom:2px solid rgba(240,231,210,.18);
  position:relative;
}
.profile__head::after{
  content:"";position:absolute;left:0;bottom:-6px;width:80px;height:2px;background:var(--ember-hot);
}
.profile__head h2{
  font-variation-settings:"opsz" 144,"SOFT" 40,"wght" 400;
  font-size:clamp(2rem,1.2rem + 3.5vw,3.75rem);
  color:var(--paper);line-height:.95;letter-spacing:-.025em;
}
.profile__head h2 em{
  font-style:italic;color:var(--ember-hot);
  font-variation-settings:"opsz" 144,"SOFT" 90,"wght" 340;
}
.profile__head .section-head__num,
.profile__head .section-head__meta{color:var(--paper-deep)}

.profile__body{
  display:grid;
  grid-template-columns:5fr 7fr;
  gap:clamp(2rem,5vw,5rem);
  align-items:start;
}

.profile__portrait{
  position:relative;
  grid-row:1/span 2;
}
.profile__portrait-img{
  aspect-ratio:4/5;
  overflow:hidden;
  position:relative;
  background:var(--ink-deep);
  box-shadow:0 30px 80px -40px rgba(200,68,28,.4);
}
.profile__portrait-img img{
  width:100%;height:100%;object-fit:cover;object-position:center 25%;
  filter:grayscale(.4) contrast(1.1);
  mix-blend-mode:lighten;
}
.profile__portrait-img::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 20%,rgba(20,17,13,.5));
  pointer-events:none;
}
.profile__portrait-plate{
  display:flex;justify-content:space-between;gap:1rem;align-items:baseline;
  margin-top:1rem;
  font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--paper-deep);
  padding-bottom:.75rem;border-bottom:1px solid rgba(240,231,210,.15);
}
.profile__portrait-plate em{
  font-family:var(--serif);font-style:italic;
  font-variation-settings:"opsz" 18,"SOFT" 80,"wght" 400;
  color:var(--ember-hot);
  font-size:13px;text-transform:none;letter-spacing:0;
}

.profile__copy p{
  font-family:var(--serif);
  font-variation-settings:"opsz" 18,"SOFT" 40,"wght" 380;
  font-size:clamp(1rem,.95rem + .3vw,1.18rem);
  line-height:1.62;
  color:var(--paper-deep);
  margin-bottom:1.25rem;
  max-width:52ch;
}
.profile__copy p:first-of-type::first-letter{
  font-family:var(--serif);
  font-variation-settings:"opsz" 144,"SOFT" 80,"wght" 600;
  font-size:clamp(3.5rem,6vw,5rem);
  float:left;
  line-height:.82;
  padding:.1em .18em 0 0;
  color:var(--ember-hot);
  font-feature-settings:"ss01";
}
.profile__copy strong{
  font-weight:520;color:var(--paper);
  font-variation-settings:"opsz" 18,"SOFT" 60,"wght" 520;
}

/* Pull quote — big, italic, ember-accented */
.pullquote{
  margin:2.5rem 0;
  padding:1.5rem 0 1.5rem 1.75rem;
  font-family:var(--serif);font-style:italic;
  font-variation-settings:"opsz" 72,"SOFT" 90,"wght" 340;
  font-size:clamp(1.35rem,1.1rem + 1.2vw,2rem);
  line-height:1.25;
  color:var(--paper);
  letter-spacing:-.015em;
  position:relative;
}
.pullquote::before{
  content:"\201C";
  position:absolute;
  left:-1.1rem;top:-.35rem;
  font-size:3em;
  color:var(--ember-hot);
  line-height:1;
  font-style:normal;
  font-variation-settings:"opsz" 144,"SOFT" 20,"wght" 300;
}

.profile__facts{
  grid-column:2;
  margin-top:1.5rem;
  border-top:1px solid rgba(240,231,210,.18);
  padding-top:1.5rem;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1.25rem 2rem;
}
.profile__fact{
  display:grid;gap:.25rem;
}
.profile__fact dt{
  font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--ember-hot);
}
.profile__fact dd{
  font-family:var(--serif);
  font-variation-settings:"opsz" 18,"SOFT" 50,"wght" 420;
  font-size:1.02rem;color:var(--paper);line-height:1.35;
}
.profile__fact dd em{font-style:italic;color:var(--paper-deep);font-size:.95em}

@media (max-width:860px){
  .profile__body{grid-template-columns:1fr}
  .profile__portrait{max-width:360px;grid-row:auto}
  .profile__facts{grid-column:1}
}

/* ============================================================
   COLOPHON — contact as a letterhead. Warm, direct, analogue.
   ============================================================ */
.colophon{
  padding:clamp(4rem,8vw,7rem) 0;
  background:var(--paper-warm);
  border-top:1px solid var(--rule);
  position:relative;
}

.colophon__inner{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(2rem,6vw,6rem);
  align-items:start;
}
.colophon__hook{
  font-family:var(--serif);
  font-variation-settings:"opsz" 144,"SOFT" 40,"wght" 380;
  font-size:clamp(2rem,1.5rem + 3vw,4rem);
  line-height:1;
  letter-spacing:-.025em;
  color:var(--text);
}
.colophon__hook em{
  font-style:italic;
  font-variation-settings:"opsz" 144,"SOFT" 100,"wght" 340;
  color:var(--ember);
}
.colophon__hook-sub{
  margin-top:1.25rem;
  font-family:var(--serif);
  font-variation-settings:"opsz" 18,"SOFT" 40,"wght" 380;
  font-size:clamp(1rem,.95rem + .3vw,1.15rem);
  color:var(--text-muted);
  max-width:40ch;
  line-height:1.5;
}

.letterhead{
  font-family:var(--mono);
  font-size:14px;line-height:1.75;
  color:var(--text);
  padding:clamp(1.5rem,3vw,2.5rem);
  background:var(--paper);
  border:1px solid var(--rule);
  position:relative;
  box-shadow:0 4px 0 var(--paper-deep),0 30px 50px -30px rgba(20,17,13,.3);
}
.letterhead::before{
  content:"";position:absolute;top:-1px;left:-1px;right:-1px;height:3px;
  background:var(--ember);
}
.letterhead__crest{
  font-family:var(--serif);
  font-variation-settings:"opsz" 144,"SOFT" 60,"wght" 600;
  font-size:1.5rem;letter-spacing:-.015em;
  margin-bottom:.25rem;
  color:var(--text);
}
.letterhead__crest em{
  font-style:italic;color:var(--ember);
  font-variation-settings:"opsz" 144,"SOFT" 100,"wght" 420;
}
.letterhead__subcrest{
  font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--text-muted);margin-bottom:1.75rem;
  padding-bottom:1.25rem;border-bottom:1px solid var(--rule-soft);
}
.letterhead__line{
  display:grid;
  grid-template-columns:80px 1fr;
  gap:1rem;
  padding:.4rem 0;
}
.letterhead__line dt{
  font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--text-muted);padding-top:4px;
}
.letterhead__line dd{
  font-family:var(--serif);
  font-variation-settings:"opsz" 14,"SOFT" 40,"wght" 420;
  font-size:1rem;color:var(--text);
  line-height:1.4;
}
.letterhead__line dd a{
  color:var(--text);text-decoration:none;
  border-bottom:1px solid var(--ember);
  transition:color .18s ease;
}
.letterhead__line dd a:hover{color:var(--ember)}
.letterhead__line dd em{font-style:italic;color:var(--text-muted);font-size:.92em;display:block;margin-top:.1rem}

.letterhead__footer{
  margin-top:1.5rem;padding-top:1.25rem;
  border-top:1px solid var(--rule-soft);
  display:flex;justify-content:space-between;align-items:center;
  font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--text-faint);
}
.letterhead__footer .status{
  display:inline-flex;align-items:center;gap:.5rem;color:var(--ember);
}
.letterhead__footer .status::before{
  content:"";width:6px;height:6px;border-radius:50%;
  background:var(--ember);
  box-shadow:0 0 10px 2px var(--ember-glow);
  animation:pulse 2s ease-in-out infinite;
}
@keyframes pulse{
  0%,100%{opacity:.6;transform:scale(1)}
  50%{opacity:1;transform:scale(1.25)}
}

@media (max-width:860px){
  .colophon__inner{grid-template-columns:1fr;gap:2.5rem}
}

/* ============================================================
   IMPRIMATUR — recognition & memberships band.
   A letterpress "mark of approval" stripe beneath the Profile.
   ============================================================ */
.imprimatur{
  padding:clamp(2.5rem,5vw,4rem) 0;
  background:var(--paper-warm);
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  position:relative;
}
.imprimatur__inner{
  display:grid;
  grid-template-columns:minmax(220px,1fr) 3fr;
  gap:clamp(1.5rem,4vw,3.5rem);
  align-items:center;
}
.imprimatur__intro .kicker{
  margin-bottom:.9rem;
  display:flex;align-items:center;gap:.75rem;
}
.imprimatur__intro .kicker::after{
  content:"";flex:1;height:1px;background:var(--ember);opacity:.55;
}
.imprimatur__head{
  font-family:var(--serif);
  font-variation-settings:"opsz" 72,"SOFT" 50,"wght" 420;
  font-size:clamp(1.35rem,1rem + 1.2vw,1.9rem);
  line-height:1.1;letter-spacing:-.015em;
  color:var(--text);
}
.imprimatur__head em{
  font-style:italic;color:var(--ember);
  font-variation-settings:"opsz" 72,"SOFT" 100,"wght" 380;
}

.imprimatur__badges{
  display:flex;gap:clamp(1rem,3vw,2rem);
  align-items:center;justify-content:flex-start;flex-wrap:wrap;
}
.badge{
  display:flex;flex-direction:column;align-items:center;gap:.6rem;
  text-decoration:none;color:var(--text-muted);
  transition:transform .25s ease, color .2s ease;
  max-width:130px;
}
.badge:hover{transform:translateY(-3px);color:var(--ember)}
.badge:focus-visible{outline:2px solid var(--ember);outline-offset:4px}
.badge img{
  max-width:84px;
  height:auto;max-height:84px;object-fit:contain;
  filter:grayscale(.15);
  transition:filter .25s ease;
}
.badge:hover img{filter:grayscale(0)}
.badge--wide img{max-width:124px;max-height:56px}
.badge__caption{
  font-family:var(--mono);font-size:9.5px;
  letter-spacing:.16em;text-transform:uppercase;
  text-align:center;line-height:1.4;
  color:var(--text-muted);
}
.badge:hover .badge__caption{color:var(--ember)}

@media (max-width:860px){
  .imprimatur__inner{grid-template-columns:1fr;gap:2rem}
  .imprimatur__badges{justify-content:center}
}

/* ============================================================
   JOURNAL — latest articles teaser on the homepage.
   Editorial preview, three entries, linking to the full archive.
   ============================================================ */
.journal{
  padding:clamp(4rem,8vw,7rem) 0;
  background:var(--paper);
}
.journal__grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(1.5rem,3vw,2.5rem);
  margin-top:clamp(2rem,4vw,3rem);
}
.journal__card{
  display:flex;flex-direction:column;gap:1rem;
  text-decoration:none;color:var(--text);
  position:relative;
  transition:transform .3s ease;
  padding-top:1.25rem;
  border-top:1px solid var(--rule);
}
.journal__card::before{
  content:"";position:absolute;top:-1px;left:0;width:60px;height:2px;
  background:var(--ember);
  transform:scaleX(0);transform-origin:left;
  transition:transform .3s ease;
}
.journal__card:hover::before{transform:scaleX(1)}
.journal__card:hover{transform:translateY(-3px)}
.journal__card:focus-visible{outline:2px solid var(--ember);outline-offset:6px}

.journal__img{
  aspect-ratio:16/10;overflow:hidden;
  background:var(--paper-warm);
  position:relative;
}
.journal__img img{
  width:100%;height:100%;object-fit:cover;
  filter:grayscale(.18) contrast(1.02);
  transition:transform .5s ease, filter .4s ease;
}
.journal__card:hover .journal__img img{
  transform:scale(1.04);filter:grayscale(0) contrast(1.05);
}
.journal__img--empty{
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--paper-warm) 50%,var(--paper-deep) 50%);
  color:var(--text-faint);
  font-family:var(--serif);font-style:italic;
  font-variation-settings:"opsz" 144,"SOFT" 60,"wght" 400;
  font-size:2.5rem;
}
.journal__meta{
  display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--text-muted);
}
.journal__meta .cat{color:var(--ember);font-weight:500}
.journal__meta .sep{opacity:.5}
.journal__title{
  font-family:var(--serif);
  font-variation-settings:"opsz" 72,"SOFT" 50,"wght" 460;
  font-size:clamp(1.2rem,1rem + .8vw,1.5rem);
  line-height:1.18;letter-spacing:-.015em;
  color:var(--text);
}
.journal__card:hover .journal__title{color:var(--ember)}
.journal__excerpt{
  font-family:var(--serif);
  font-variation-settings:"opsz" 14,"SOFT" 40,"wght" 400;
  font-size:.97rem;line-height:1.55;
  color:var(--text-muted);
}
.journal__readlink{
  margin-top:auto;
  font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--text);
  display:inline-flex;align-items:center;gap:.4rem;
  padding-top:.5rem;
}
.journal__card:hover .journal__readlink{color:var(--ember)}
.journal__readlink .arr{transition:transform .25s ease}
.journal__card:hover .journal__readlink .arr{transform:translateX(3px)}

.journal__cta{
  margin-top:clamp(2.5rem,5vw,4rem);
  display:flex;justify-content:center;
}
.journal__cta a{
  font-family:var(--mono);font-size:12px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--text);text-decoration:none;
  padding:1rem 1.5rem;
  border-top:1px solid var(--text);
  border-bottom:1px solid var(--text);
  display:inline-flex;align-items:center;gap:.75rem;
  transition:color .2s ease, border-color .2s ease, letter-spacing .3s ease;
}
.journal__cta a:hover{
  color:var(--ember);border-color:var(--ember);letter-spacing:.26em;
}

.journal__loading,
.journal__empty,
.journal__error{
  grid-column:1/-1;
  padding:3rem 1rem;text-align:center;
  font-family:var(--mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--text-muted);
}
.journal__loading::before{
  content:"";display:inline-block;
  width:10px;height:10px;border-radius:50%;
  background:var(--ember);margin-right:.6rem;
  box-shadow:0 0 12px 2px var(--ember-glow);
  animation:pulse 1.2s ease-in-out infinite;
  vertical-align:middle;
}

@media (max-width:860px){
  .journal__grid{grid-template-columns:1fr;gap:2.5rem}
}

/* ============================================================
   COLOPHON FORM — letterpress correspondence form
   ============================================================ */
.colophon__inner{
  align-items:start;
}
.colophon__form{
  display:flex;flex-direction:column;gap:1.1rem;
  margin-top:1.75rem;
}
.form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.9rem;
}
.form-field{display:flex;flex-direction:column;gap:.4rem}
.form-label{
  font-family:var(--mono);font-size:10px;font-weight:500;
  letter-spacing:.22em;text-transform:uppercase;
  color:var(--text-muted);
}
.form-label .req{color:var(--ember);margin-left:2px}
.form-input,
.form-select,
.form-textarea{
  font-family:var(--serif);
  font-variation-settings:"opsz" 14,"SOFT" 40,"wght" 420;
  font-size:1rem;
  padding:.75rem .85rem;
  background:var(--paper);
  border:none;
  border-bottom:1.5px solid var(--rule);
  color:var(--text);
  outline:none;
  transition:border-color .2s ease, background .2s ease;
  border-radius:0;
  width:100%;
}
.form-input:focus,
.form-select:focus,
.form-textarea:focus{
  border-bottom-color:var(--ember);
  background:var(--paper-deep);
}
.form-input::placeholder,
.form-textarea::placeholder{
  color:var(--text-faint);
  font-style:italic;
  font-variation-settings:"opsz" 14,"SOFT" 80,"wght" 360;
}
.form-input.error,
.form-select.error,
.form-textarea.error{border-bottom-color:var(--rust);background:rgba(142,58,30,.06)}

.form-select{
  appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' stroke='%23C8441C' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat:no-repeat;
  background-position:right .85rem center;
  padding-right:2rem;
  cursor:pointer;
}
.form-textarea{
  resize:vertical;min-height:120px;line-height:1.55;
}
.field-error{
  font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--rust);
  min-height:0;
  transition:min-height .2s ease;
}
.field-error.active{min-height:1em}

.form-honeypot{
  position:absolute!important;width:1px!important;height:1px!important;
  padding:0!important;margin:-1px!important;overflow:hidden!important;
  clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;
  opacity:0!important;pointer-events:none!important;
}

.form-captcha{
  padding:.85rem 1rem;
  background:var(--paper-warm);
  border-left:2px solid var(--ember);
  display:grid;
  grid-template-columns:auto 1fr;
  gap:.75rem 1rem;
  align-items:center;
}
.form-captcha .form-label{grid-column:1/-1;margin-bottom:0}
.captcha-question{
  font-family:var(--serif);font-style:italic;
  font-variation-settings:"opsz" 48,"SOFT" 80,"wght" 460;
  font-size:1.15rem;color:var(--ember);
  white-space:nowrap;
}
.form-captcha .form-input{
  background:var(--paper);
  border-bottom-color:var(--rule-soft);
  padding:.5rem .7rem;
  margin:0;
  max-width:120px;
}

.form-submit-btn{
  margin-top:.5rem;
  background:var(--ember);color:var(--paper);
  border:none;cursor:pointer;
  padding:1rem 1.5rem;
  font-family:var(--mono);font-size:12px;font-weight:500;
  letter-spacing:.22em;text-transform:uppercase;
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  transition:background .2s ease, padding .3s ease, letter-spacing .3s ease;
  align-self:flex-start;
  position:relative;
}
.form-submit-btn:hover{
  background:var(--ember-hot);letter-spacing:.26em;padding-right:1.8rem;
}
.form-submit-btn:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.form-submit-btn:disabled,.form-submit-btn.loading{cursor:wait;opacity:.85}
.form-submit-btn.loading .btn-text,
.form-submit-btn.loading .btn-icon{visibility:hidden}
.form-submit-btn .btn-loading{
  display:none;align-items:center;gap:.5rem;
  position:absolute;inset:0;justify-content:center;
}
.form-submit-btn.loading .btn-loading{display:inline-flex}
.spinner{
  width:12px;height:12px;border:1.5px solid var(--paper);border-top-color:transparent;
  border-radius:50%;
  animation:spin .7s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}

.contact-message{
  display:none;
  padding:.9rem 1.1rem;
  margin-top:1rem;
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  border-left:3px solid var(--ember);
  background:var(--paper-warm);
  color:var(--text);
}
.contact-message.active{display:block}
.contact-message.success{
  border-left-color:#4e7a3a;
  color:#2e4a22;
  background:rgba(78,122,58,.08);
}
.contact-message.error{
  border-left-color:var(--rust);
  color:var(--rust);
  background:rgba(142,58,30,.08);
}

@media (max-width:620px){
  .form-row{grid-template-columns:1fr}
  .form-captcha{grid-template-columns:1fr;gap:.5rem}
}

