/* ============================================================
   CYANOTYPE DESIGN SYSTEM
   Indigo on parchment. Editorial. Place-aware.
   ------------------------------------------------------------
   Three art registers, three uses:
     1. Splatter cyanotypes — covers and identity (home hero, About hero)
     2. Cartographic cyanotypes — projects and place (project pages)
     3. Oil-painting cityscapes — biographical / personal only (About, blog)

   Loaded AFTER style.css so its tokens win on equal specificity.
   Namespace: every class is .cyanotype-* to avoid colliding with
   the existing Foundation + mod* component system.
   ============================================================ */

:root {
  /* Primary palette */
  --c-indigo:           #14306E;
  --c-indigo-deep:      #0E2153;
  --c-indigo-soft-25:   rgba(20, 48, 110, 0.25);
  --c-indigo-soft-15:   rgba(20, 48, 110, 0.15);
  --c-parchment:        #F4EEDD;
  --c-parchment-warm:   #FBF7EC;
  --c-parchment-edge:   #E8DEC4;

  /* Text */
  --c-ink:              #1A1A2E;
  --c-ink-muted:        rgba(46, 46, 54, 0.85);
  --c-ink-soft:         rgba(46, 46, 54, 0.55);
  --c-cream:            #F4EEDD;

  /* Accent — used very sparingly, for date eyebrows / status only */
  --c-sienna:           #B8541A;

  /* Type stacks. The site already loads Cormorant Garamond (serif)
     and Lato (sans). Cyanotype uses both. Upgrade to Fraunces or
     Spectral if you want a more contemporary editorial feel later. */
  --c-font-serif:       'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --c-font-sans:        'Lato', -apple-system, BlinkMacSystemFont,
                        'Segoe UI', Roboto, Arial, sans-serif;
  --c-font-mono:        ui-monospace, SFMono-Regular, Menlo, monospace;

  /* 8pt spacing scale */
  --c-space-1:          4px;
  --c-space-2:          8px;
  --c-space-3:          12px;
  --c-space-4:          16px;
  --c-space-6:          24px;
  --c-space-8:          32px;
  --c-space-12:         48px;
  --c-space-16:         64px;
  --c-space-24:         96px;

  /* Radius — keep restrained */
  --c-radius-sm:        2px;
  --c-radius-md:        8px;
  --c-radius-lg:        12px;

  /* Tracking */
  --c-tracking-eyebrow: 0.18em;
  --c-tracking-meta:    0.10em;
}

/* ============================================================
   Cyanotype hero
   ------------------------------------------------------------
   Used on the home page. Background is an inline SVG of layered
   cyanotype splatters; portrait sits on top with a duotone filter
   so it belongs to the indigo+parchment world.
   ============================================================ */

.cyanotype-hero {
  position: relative;
  background: var(--c-parchment);
  overflow: hidden;
  padding: 0;
  min-height: 480px;
  isolation: isolate;
}

.cyanotype-hero__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  pointer-events: none;
}

.cyanotype-hero__inner {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: var(--c-space-8);
  align-items: center;
  max-width: 1100px;
  margin: 0 auto;
  padding: var(--c-space-12) var(--c-space-8);
}

.cyanotype-hero__portrait {
  width: 240px;
  height: 240px;
  display: block;
  flex-shrink: 0;
}

.cyanotype-hero__copy {
  max-width: 560px;
}

.cyanotype-hero__eyebrow {
  font-family: var(--c-font-sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: var(--c-tracking-eyebrow);
  color: var(--c-indigo);
  text-transform: uppercase;
  margin-bottom: var(--c-space-4);
}

/* Reset the site-wide forced-uppercase on h1 inherited from style.css */
.cyanotype-hero__title {
  font-family: var(--c-font-serif);
  font-size: 44px;
  line-height: 1.05;
  font-weight: 400;
  color: var(--c-indigo);
  margin: 0 0 var(--c-space-4);
  letter-spacing: -0.005em;
  text-transform: none;
}

.cyanotype-hero__intro {
  font-family: var(--c-font-sans);
  font-size: 17px;
  line-height: 1.6;
  color: var(--c-ink-muted);
  margin: 0 0 var(--c-space-6);
}

.cyanotype-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--c-space-4);
  align-items: baseline;
}

.cyanotype-hero__btn {
  display: inline-block;
  padding: 10px 18px;
  background: var(--c-indigo);
  color: var(--c-parchment);
  font-family: var(--c-font-sans);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-decoration: none;
  border: 1px solid var(--c-indigo);
  border-radius: var(--c-radius-sm);
  text-transform: none;
  transition: background-color 0.2s ease;
}

.cyanotype-hero__btn:hover,
.cyanotype-hero__btn:focus {
  background: var(--c-indigo-deep);
  color: var(--c-parchment);
}

.cyanotype-hero__btn:focus-visible {
  outline: 2px solid var(--c-sienna);
  outline-offset: 3px;
}

.cyanotype-hero__link {
  font-family: var(--c-font-sans);
  font-size: 14px;
  color: var(--c-indigo);
  text-decoration: none;
  border-bottom: 1px solid var(--c-indigo-soft-25);
  padding-bottom: 1px;
  transition: border-color 0.2s ease;
}

.cyanotype-hero__link:hover {
  color: var(--c-indigo);
  border-bottom-color: var(--c-indigo);
}

.cyanotype-hero__link:focus-visible {
  outline: 2px solid var(--c-sienna);
  outline-offset: 3px;
}

.cyanotype-hero__caption {
  position: absolute;
  bottom: var(--c-space-4);
  left: var(--c-space-8);
  font-family: var(--c-font-mono);
  font-size: 10px;
  letter-spacing: var(--c-tracking-meta);
  color: var(--c-ink-soft);
  z-index: 2;
  text-transform: uppercase;
}

/* Mobile — stack vertically, recenter, scale down */
@media (max-width: 768px) {
  .cyanotype-hero {
    min-height: 0;
  }
  .cyanotype-hero__inner {
    grid-template-columns: 1fr;
    gap: var(--c-space-6);
    padding: var(--c-space-8) var(--c-space-4);
    text-align: center;
  }
  .cyanotype-hero__portrait {
    width: 180px;
    height: 180px;
    margin: 0 auto;
  }
  .cyanotype-hero__copy {
    margin: 0 auto;
  }
  .cyanotype-hero__title {
    font-size: 32px;
  }
  .cyanotype-hero__intro {
    font-size: 16px;
  }
  .cyanotype-hero__actions {
    justify-content: center;
  }
  .cyanotype-hero__caption {
    display: none;
  }
}

/* ============================================================
   Cyanotype project hero (cartographic register)
   ------------------------------------------------------------
   Used on portfolio pages. Layout reverses the home hero —
   the cartographic mass sits on the left, project copy on the
   right against a parchment vignette.
   ============================================================ */

.cyanotype-project-hero {
  position: relative;
  background: var(--c-parchment);
  overflow: hidden;
  min-height: 380px;
  isolation: isolate;
}

.cyanotype-project-hero__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  pointer-events: none;
}

.cyanotype-project-hero__inner {
  position: relative;
  z-index: 2;
  max-width: 1100px;
  margin: 0 auto;
  padding: var(--c-space-12) var(--c-space-8);
  display: grid;
  grid-template-columns: 1fr;
}

.cyanotype-project-hero__copy {
  margin-left: auto;
  max-width: 520px;
  text-align: left;
}

.cyanotype-project-hero__eyebrow {
  font-family: var(--c-font-sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: var(--c-tracking-eyebrow);
  color: var(--c-sienna);
  text-transform: uppercase;
  margin-bottom: var(--c-space-4);
}

.cyanotype-project-hero__title {
  font-family: var(--c-font-serif);
  font-size: 36px;
  line-height: 1.1;
  font-weight: 400;
  color: var(--c-indigo);
  margin: 0 0 var(--c-space-3);
  letter-spacing: -0.005em;
  text-transform: none;
}

.cyanotype-project-hero__tagline {
  font-family: var(--c-font-serif);
  font-size: 18px;
  font-style: italic;
  color: var(--c-ink-muted);
  margin: 0 0 var(--c-space-4);
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
}

.cyanotype-project-hero__intro {
  font-family: var(--c-font-sans);
  font-size: 15px;
  line-height: 1.65;
  color: var(--c-ink-muted);
  margin: 0 0 var(--c-space-6);
}

.cyanotype-project-hero__location {
  position: absolute;
  bottom: var(--c-space-4);
  left: var(--c-space-8);
  z-index: 2;
  font-family: var(--c-font-serif);
  font-size: 14px;
  letter-spacing: var(--c-tracking-meta);
  color: var(--c-parchment);
  text-transform: uppercase;
}

.cyanotype-project-hero__location small {
  display: block;
  font-family: var(--c-font-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  color: rgba(244, 238, 221, 0.7);
  margin-top: 3px;
  text-transform: none;
}

@media (max-width: 768px) {
  .cyanotype-project-hero {
    min-height: 0;
  }
  .cyanotype-project-hero__inner {
    padding: var(--c-space-8) var(--c-space-4);
  }
  .cyanotype-project-hero__copy {
    margin: 0 auto;
    text-align: center;
    max-width: 100%;
  }
  .cyanotype-project-hero__title { font-size: 26px; }
  .cyanotype-project-hero__tagline { font-size: 16px; }
  .cyanotype-project-hero__location {
    position: static;
    color: var(--c-indigo);
    text-align: center;
    margin-top: var(--c-space-4);
  }
  .cyanotype-project-hero__location small {
    color: var(--c-ink-soft);
  }
}

/* ============================================================
   Cyanotype duotone — applies to any <img> that should join
   the indigo+parchment family (team headshots, paper thumbnails).
   Requires _includes/cyanotype-defs.html to be present in the
   document (loaded by default.html for every page).
   ============================================================ */

.cyanotype-duotone {
  filter: url(#cyDuotone);
  background: var(--c-parchment-warm);
}

/* ============================================================
   Cyanotype people grid
   ------------------------------------------------------------
   Replaces the generic .people-card / .people-grid styles on
   pages that opt in. Square indigo-bordered tiles with duotone
   portraits, hairline dividers, no shadows.
   ============================================================ */

.cyanotype-people-hero {
  background: var(--c-parchment);
  padding: var(--c-space-12) 0 var(--c-space-8);
  text-align: center;
  border-bottom: 0.5px solid var(--c-indigo-soft-15);
}

.cyanotype-people-hero h1 {
  font-family: var(--c-font-serif);
  font-size: 40px;
  font-weight: 400;
  color: var(--c-indigo);
  margin: 0 0 var(--c-space-3);
  text-transform: none;
  letter-spacing: -0.005em;
}

.cyanotype-people-hero .lede {
  font-family: var(--c-font-sans);
  color: var(--c-ink-muted);
  max-width: 680px;
  margin: 0 auto;
  font-size: 16px;
  line-height: 1.6;
}

.cyanotype-people-hero .lede a {
  color: var(--c-indigo);
  border-bottom: 1px solid var(--c-indigo-soft-25);
  text-decoration: none;
}

.cyanotype-people-section {
  background: var(--c-parchment);
  padding: var(--c-space-8) 0 var(--c-space-12);
}

.cyanotype-people-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 0;
  border-top: 0.5px solid var(--c-indigo-soft-15);
  border-left: 0.5px solid var(--c-indigo-soft-15);
}

.cyanotype-people-card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  background: var(--c-parchment-warm);
  border-right: 0.5px solid var(--c-indigo-soft-15);
  border-bottom: 0.5px solid var(--c-indigo-soft-15);
  transition: background-color 0.2s ease;
}

.cyanotype-people-card:hover,
.cyanotype-people-card:focus {
  background: var(--c-parchment);
  text-decoration: none;
  color: inherit;
}

.cyanotype-people-card:focus-visible {
  outline: 2px solid var(--c-sienna);
  outline-offset: -2px;
}

.cyanotype-people-card .photo {
  aspect-ratio: 1 / 1;
  width: 100%;
  object-fit: cover;
  display: block;
  filter: url(#cyDuotone);
  background: var(--c-parchment-warm);
}

.cyanotype-people-card .body {
  padding: var(--c-space-3) var(--c-space-4) var(--c-space-4);
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1;
  border-top: 0.5px solid var(--c-indigo-soft-15);
}

.cyanotype-people-card .name {
  font-family: var(--c-font-serif);
  font-weight: 400;
  color: var(--c-indigo);
  font-size: 16px;
  line-height: 1.2;
  text-transform: none;
  letter-spacing: 0;
}

.cyanotype-people-card .role {
  color: var(--c-ink-soft);
  font-family: var(--c-font-sans);
  font-size: 12px;
  line-height: 1.4;
}

.cyanotype-people-card .meta {
  margin-top: auto;
  padding-top: var(--c-space-2);
  color: var(--c-sienna);
  font-family: var(--c-font-sans);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: var(--c-tracking-meta);
  font-weight: 600;
}

.cyanotype-people-section .footnote {
  margin-top: var(--c-space-8);
  color: var(--c-ink-soft);
  font-family: var(--c-font-sans);
  font-size: 14px;
  text-align: center;
}

.cyanotype-people-section .footnote a {
  color: var(--c-indigo);
  border-bottom: 1px solid var(--c-indigo-soft-25);
  text-decoration: none;
}

@media (max-width: 768px) {
  .cyanotype-people-hero {
    padding: var(--c-space-8) 0 var(--c-space-6);
  }
  .cyanotype-people-hero h1 { font-size: 28px; }
  .cyanotype-people-grid {
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  }
  .cyanotype-people-card .body { padding: var(--c-space-2) var(--c-space-3) var(--c-space-3); }
  .cyanotype-people-card .name { font-size: 14px; }
  .cyanotype-people-card .role { font-size: 11px; }
}

/* Respect users who prefer reduced motion */
@media (prefers-reduced-motion: reduce) {
  .cyanotype-hero__btn,
  .cyanotype-hero__link,
  .cyanotype-people-card {
    transition: none;
  }
}
