/**
 * Kansas Culture  -  design tokens
 * House primary: Cottonwood patch. Zero Sniffscore crossover.
 * Patch-first: monochrome charcoal on cream for laser leather (~1in).
 */

:root {
  /* Color  -  palette */
  --kc-color-limestone-cream: #f3ebd8;
  --kc-color-prairie-wheat-gold: #c9a227;
  --kc-color-big-sky-blue: #3a6ea5;
  --kc-color-flint-hills-green: #3d5c45;
  --kc-color-flint-hills-charcoal: #2b2b2b;

  /* Color  -  roles */
  --kc-color-bg: var(--kc-color-limestone-cream);
  --kc-color-fg: var(--kc-color-flint-hills-charcoal);
  --kc-color-accent: var(--kc-color-prairie-wheat-gold);
  --kc-color-link: var(--kc-color-big-sky-blue);
  --kc-color-nature: var(--kc-color-flint-hills-green);
  --kc-color-engrave: var(--kc-color-flint-hills-charcoal);
  --kc-color-engrave-ground: var(--kc-color-limestone-cream);

  /* Type  -  families (load via Google Fonts or self-host) */
  --kc-font-wordmark: "Fraunces", "Source Serif 4", "Source Serif Pro", Georgia, "Times New Roman", serif;
  --kc-font-ui: "Inter", "Source Sans 3", "Source Sans Pro", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --kc-font-body: var(--kc-font-ui);

  /* Type  -  scale (rem @ 16px root) */
  --kc-text-xs: 0.75rem;
  --kc-text-sm: 0.875rem;
  --kc-text-base: 1rem;
  --kc-text-lg: 1.125rem;
  --kc-text-xl: 1.25rem;
  --kc-text-2xl: 1.5rem;
  --kc-text-3xl: 1.875rem;
  --kc-text-wordmark: 1.5rem;

  /* Type  -  weight */
  --kc-weight-regular: 400;
  --kc-weight-medium: 500;
  --kc-weight-semibold: 600;
  --kc-weight-bold: 700;

  /* Mark  -  lockup roles */
  --kc-mark-primary: "cottonwood-patch";
  --kc-mark-place-story: "flint-hills-meadowlark";
  --kc-mark-secondary: "wheat-stalk";
}

/* Optional dark surface (site chrome only; never for leather patch) */
[data-theme="ink"] {
  --kc-color-bg: var(--kc-color-flint-hills-charcoal);
  --kc-color-fg: var(--kc-color-limestone-cream);
  --kc-color-link: var(--kc-color-big-sky-blue);
  --kc-color-accent: var(--kc-color-prairie-wheat-gold);
}

/* Place pages: import place-page-v2.css after this file. See PLACE_PAGE_V2.md */
/* Showcase atmospheres: import place-atmospheres.css after place-page-v2.css. See PLACE_ATMOSPHERES.md */

/**
 * Kansas Culture  -  Place page visual system v2
 * Showcase: Lawrence / Nicodemus / Lucas
 * Quality bar: Texas Monthly seriousness for place story; NOT a magazine clone.
 * Richer via graph (era + connected chips, sources). Patch-first DNA.
 * Apply on top of tokens.css. No marketing copy invented here.
 */

:root {
  /* Place page spacing */
  --kc-place-measure: 40rem;
  --kc-place-measure-wide: 52rem;
  --kc-place-gutter: 1.25rem;
  --kc-place-section-gap: 2.25rem;
  --kc-place-hero-max: 26rem;

  /* Place type roles */
  --kc-place-title-size: clamp(1.75rem, 4vw, 2.5rem);
  --kc-place-summary-size: 1.125rem;
  --kc-place-summary-lh: 1.65;
  --kc-place-section-label-size: 0.75rem;
  --kc-place-note-size: 0.9375rem;
  --kc-place-source-size: 0.875rem;
  --kc-place-credit-size: 0.75rem;

  /* Chips */
  --kc-chip-bg: color-mix(in srgb, var(--kc-color-flint-hills-green) 12%, var(--kc-color-limestone-cream));
  --kc-chip-border: color-mix(in srgb, var(--kc-color-flint-hills-green) 35%, var(--kc-color-limestone-cream));
  --kc-chip-fg: var(--kc-color-flint-hills-green);
  --kc-chip-era-accent: var(--kc-color-prairie-wheat-gold);
  --kc-chip-connected-accent: var(--kc-color-big-sky-blue);

  /* Surfaces */
  --kc-place-rule: color-mix(in srgb, var(--kc-color-flint-hills-charcoal) 22%, var(--kc-color-limestone-cream));
  --kc-place-notes-bg: color-mix(in srgb, var(--kc-color-flint-hills-charcoal) 4%, var(--kc-color-limestone-cream));
}

/*  -  -  Shell  -  -  */
.place-page {
  max-width: var(--kc-place-measure-wide);
  margin: 0 auto;
  padding: 0 var(--kc-place-gutter) 3rem;
  color: var(--kc-color-fg);
  background: var(--kc-color-bg);
}

.place-page .place-header {
  max-width: var(--kc-place-measure);
  padding-top: 1.5rem;
}

/* Title: heritage serif, place name only  -  no magazine kicker */
.place-page .place-title {
  font-family: var(--kc-font-wordmark);
  font-size: var(--kc-place-title-size);
  font-weight: var(--kc-weight-semibold);
  line-height: 1.15;
  letter-spacing: -0.01em;
  margin: 0 0 0.5rem;
  color: var(--kc-color-fg);
}

.place-page .place-kicker {
  font-family: var(--kc-font-ui);
  font-size: var(--kc-place-section-label-size);
  font-weight: var(--kc-weight-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--kc-color-nature);
  margin: 0 0 0.35rem;
}

/* Meta line: county / type  -  utilitarian, not byline glam */
.place-page .place-meta {
  font-family: var(--kc-font-ui);
  font-size: var(--kc-text-sm);
  color: color-mix(in srgb, var(--kc-color-fg) 70%, var(--kc-color-bg));
  margin: 0 0 1rem;
}

/*  -  -  Hero  -  -  */
.place-page .place-hero {
  margin: 0 0 1.5rem;
  max-width: var(--kc-place-measure-wide);
}

.place-page .place-hero figure {
  margin: 0;
}

.place-page .place-hero img {
  display: block;
  width: 100%;
  max-height: var(--kc-place-hero-max);
  object-fit: cover;
  border: 1px solid var(--kc-place-rule);
  border-radius: 0; /* no soft magazine crop corners */
  background: var(--kc-color-engrave-ground);
}

/* Photo credit: quiet, right-aligned under image; never overlaid on photo */
.place-page .place-hero .photo-credit,
.place-page .place-hero figcaption {
  font-family: var(--kc-font-ui);
  font-size: var(--kc-place-credit-size);
  line-height: 1.4;
  color: var(--kc-color-nature);
  margin: 0.4rem 0 0;
  text-align: right;
  max-width: 100%;
}

.place-page .place-hero .photo-credit a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* No-hero fallback: thin charcoal rule + cottonwood mark left of title block already in header */
.place-page .place-hero--empty {
  height: 0;
  margin: 0 0 1rem;
  border-top: 1px solid var(--kc-place-rule);
}

/*  -  -  Chips (era + connected)  -  -  */
.place-page .place-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0 0 1.5rem;
  max-width: var(--kc-place-measure);
}

.place-page .chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-family: var(--kc-font-ui);
  font-size: var(--kc-text-sm);
  font-weight: var(--kc-weight-medium);
  line-height: 1.2;
  padding: 0.35rem 0.65rem;
  border-radius: 999px;
  border: 1px solid var(--kc-chip-border);
  background: var(--kc-chip-bg);
  color: var(--kc-chip-fg);
  text-decoration: none;
}

.place-page .chip:hover {
  border-color: var(--kc-color-fg);
  color: var(--kc-color-fg);
}

.place-page .chip--era {
  border-color: color-mix(in srgb, var(--kc-chip-era-accent) 45%, var(--kc-chip-border));
  box-shadow: inset 3px 0 0 var(--kc-chip-era-accent);
}

.place-page .chip--connected {
  border-color: color-mix(in srgb, var(--kc-chip-connected-accent) 40%, var(--kc-chip-border));
  box-shadow: inset 3px 0 0 var(--kc-chip-connected-accent);
}

.place-page .chip__label {
  font-size: 0.65rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.75;
  font-weight: var(--kc-weight-semibold);
}

/*  -  -  Summary (Human Eye-passed prose only)  -  -  */
.place-page .place-summary {
  max-width: var(--kc-place-measure);
  margin: 0 0 var(--kc-place-section-gap);
}

.place-page .place-summary p {
  font-family: var(--kc-font-wordmark); /* story warmth; still KC serif, not TM display */
  font-size: var(--kc-place-summary-size);
  font-weight: var(--kc-weight-regular);
  line-height: var(--kc-place-summary-lh);
  margin: 0 0 0.85rem;
}

.place-page .place-summary--pending {
  font-family: var(--kc-font-ui);
  font-size: var(--kc-text-sm);
  font-style: italic;
  color: var(--kc-color-nature);
}

/*  -  -  Section labels (Notes / Sources / Claims)  -  -  */
.place-page .place-section {
  max-width: var(--kc-place-measure);
  margin: 0 0 var(--kc-place-section-gap);
  padding-top: 0.25rem;
  border-top: 1px solid var(--kc-place-rule);
}

.place-page .place-section__label {
  font-family: var(--kc-font-ui);
  font-size: var(--kc-place-section-label-size);
  font-weight: var(--kc-weight-semibold);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--kc-color-nature);
  margin: 1rem 0 0.75rem;
}

/* Notes: quieter panel  -  graph/context, not essay */
.place-page .place-notes {
  background: var(--kc-place-notes-bg);
  border: 1px solid var(--kc-place-rule);
  padding: 0.85rem 1rem;
  font-family: var(--kc-font-ui);
  font-size: var(--kc-place-note-size);
  line-height: 1.55;
}

.place-page .place-notes p { margin: 0 0 0.5rem; }
.place-page .place-notes p:last-child { margin-bottom: 0; }

/* Claims / structures list */
.place-page .place-claims {
  font-family: var(--kc-font-ui);
  font-size: var(--kc-place-note-size);
  line-height: 1.5;
  padding-left: 1.1rem;
  margin: 0;
}

.place-page .place-claims li { margin-bottom: 0.45rem; }
.place-page .place-claims a { color: var(--kc-color-link); }

/* Sources: denser, utilitarian  -  archive-adjacent but not dusty */
.place-page .place-sources {
  font-family: var(--kc-font-ui);
  font-size: var(--kc-place-source-size);
  line-height: 1.45;
  list-style: none;
  padding: 0;
  margin: 0;
}

.place-page .place-sources li {
  margin: 0 0 0.55rem;
  padding-left: 0.85rem;
  border-left: 2px solid var(--kc-place-rule);
}

.place-page .place-sources a {
  color: var(--kc-color-link);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.place-page .place-sources .source-rights {
  display: block;
  font-size: var(--kc-place-credit-size);
  color: var(--kc-color-nature);
  margin-top: 0.15rem;
}

/*  -  -  Lockup on place pages  -  -  */
/* Site header: horizontal cottonwood + wordmark (existing). */
/* Place pages: no large decorative mark in body. Optional 24px glyph only in empty-hero rule or footer stamp. */
.place-page .place-stamp {
  width: 1.5rem;
  height: 1.5rem;
  opacity: 0.85;
  margin-top: 2rem;
}

/*  -  -  Explicitly avoid  -  -  */
/* No full-bleed magazine mastheads, no italic display kickers, no sunflower ornaments,
   no academic footnote superscript stacks, no Sniffscore chrome. */

/**
 * Kansas Culture: Place atmosphere accents (showcase)
 * Same layout (place-page-v2). Different weather per Place.
 * Set data-place on .place-page or a wrapping element.
 * Public copy: zero em dashes.
 *
 * Lawrence: town energy via Lawrence crimson + Lawrence blue.
 *   Not trademarked marks, logos, or official university brand.
 * Nicodemus: open prairie sky + limestone light.
 *   No brown / earth / soil metaphor.
 * Lucas: charcoal + outsider bright (Garden folk).
 */

:root {
  /* Lawrence (town energy, not athletics brand) */
  --kc-atmo-lawrence-ground: #f3ebd8;
  --kc-atmo-lawrence-ink: #2b2b2b;
  --kc-atmo-lawrence-crimson: #b91c2c; /* Lawrence crimson */
  --kc-atmo-lawrence-blue: #1e4f91; /* Lawrence blue */
  --kc-atmo-lawrence-accent: var(--kc-atmo-lawrence-crimson);

  /* Nicodemus (prairie sky + limestone light; no earth/soil read) */
  --kc-atmo-nicodemus-ground: #f5f1e8; /* sun-washed limestone */
  --kc-atmo-nicodemus-ink: #2b2b2b;
  --kc-atmo-nicodemus-accent: #5a8fbf; /* prairie sky / horizon blue */

  /* Lucas */
  --kc-atmo-lucas-ground: #2b2b2b;
  --kc-atmo-lucas-ink: #f3ebd8;
  --kc-atmo-lucas-accent: #e4572e; /* outsider bright, Garden folk */
}

[data-place] {
  --kc-atmo-chip-tint: color-mix(in srgb, var(--kc-color-accent) 18%, var(--kc-color-bg));
  --kc-atmo-rule: color-mix(in srgb, var(--kc-color-fg) 22%, var(--kc-color-bg));
}

/* Lawrence: limestone cream + Lawrence crimson / Lawrence blue */
[data-place="lawrence"] {
  --kc-color-bg: var(--kc-atmo-lawrence-ground);
  --kc-color-fg: var(--kc-atmo-lawrence-ink);
  --kc-color-accent: var(--kc-atmo-lawrence-crimson);
  --kc-color-link: var(--kc-atmo-lawrence-blue);
  --kc-color-nature: #3d5c45;
  --kc-chip-era-accent: var(--kc-atmo-lawrence-crimson);
  --kc-chip-connected-accent: var(--kc-atmo-lawrence-blue);
  --kc-chip-bg: color-mix(in srgb, var(--kc-atmo-lawrence-crimson) 8%, var(--kc-atmo-lawrence-ground));
  --kc-chip-border: color-mix(in srgb, var(--kc-atmo-lawrence-crimson) 28%, var(--kc-atmo-lawrence-ground));
  --kc-chip-fg: var(--kc-atmo-lawrence-ink);
  --kc-place-rule: color-mix(in srgb, var(--kc-atmo-lawrence-ink) 18%, var(--kc-atmo-lawrence-ground));
  --kc-place-notes-bg: color-mix(in srgb, var(--kc-atmo-lawrence-blue) 6%, var(--kc-atmo-lawrence-ground));
}

[data-place="lawrence"] .place-kicker,
[data-place="lawrence"] .place-section__label {
  color: var(--kc-atmo-lawrence-crimson);
}

[data-place="lawrence"] .place-hero img {
  border-color: color-mix(in srgb, var(--kc-atmo-lawrence-crimson) 35%, var(--kc-place-rule));
}

[data-place="lawrence"] .chip--era {
  box-shadow: inset 3px 0 0 var(--kc-atmo-lawrence-crimson);
}

[data-place="lawrence"] .chip--connected {
  box-shadow: inset 3px 0 0 var(--kc-atmo-lawrence-blue);
  border-color: color-mix(in srgb, var(--kc-atmo-lawrence-blue) 35%, var(--kc-atmo-lawrence-ground));
}

/* Nicodemus: sun-washed limestone + prairie sky */
[data-place="nicodemus"] {
  --kc-color-bg: var(--kc-atmo-nicodemus-ground);
  --kc-color-fg: var(--kc-atmo-nicodemus-ink);
  --kc-color-accent: var(--kc-atmo-nicodemus-accent);
  --kc-color-link: var(--kc-atmo-nicodemus-accent);
  --kc-color-nature: color-mix(in srgb, var(--kc-atmo-nicodemus-accent) 40%, #3d5c45);
  --kc-chip-era-accent: var(--kc-atmo-nicodemus-accent);
  --kc-chip-connected-accent: #3a6ea5; /* big-sky companion */
  --kc-chip-bg: color-mix(in srgb, var(--kc-atmo-nicodemus-accent) 12%, var(--kc-atmo-nicodemus-ground));
  --kc-chip-border: color-mix(in srgb, var(--kc-atmo-nicodemus-accent) 32%, var(--kc-atmo-nicodemus-ground));
  --kc-chip-fg: var(--kc-atmo-nicodemus-ink);
  --kc-place-rule: color-mix(in srgb, var(--kc-atmo-nicodemus-ink) 16%, var(--kc-atmo-nicodemus-ground));
  --kc-place-notes-bg: color-mix(in srgb, var(--kc-atmo-nicodemus-accent) 8%, var(--kc-atmo-nicodemus-ground));
}

[data-place="nicodemus"] .place-kicker,
[data-place="nicodemus"] .place-section__label {
  color: var(--kc-atmo-nicodemus-accent);
}

[data-place="nicodemus"] .place-hero img {
  border-color: color-mix(in srgb, var(--kc-atmo-nicodemus-accent) 40%, var(--kc-place-rule));
}

[data-place="nicodemus"] .place-hero .photo-credit,
[data-place="nicodemus"] .place-hero figcaption {
  color: color-mix(in srgb, var(--kc-atmo-nicodemus-accent) 55%, var(--kc-atmo-nicodemus-ink));
}

[data-place="nicodemus"] .chip--era {
  box-shadow: inset 3px 0 0 var(--kc-atmo-nicodemus-accent);
}

/* Lucas: charcoal + outsider bright (Garden folk) */
[data-place="lucas"] {
  --kc-color-bg: var(--kc-atmo-lucas-ground);
  --kc-color-fg: var(--kc-atmo-lucas-ink);
  --kc-color-accent: var(--kc-atmo-lucas-accent);
  --kc-color-link: var(--kc-atmo-lucas-accent);
  --kc-color-nature: color-mix(in srgb, var(--kc-atmo-lucas-accent) 35%, #8a9a7a);
  --kc-chip-era-accent: var(--kc-atmo-lucas-accent);
  --kc-chip-connected-accent: #3ecfb2;
  --kc-chip-bg: color-mix(in srgb, var(--kc-atmo-lucas-accent) 16%, var(--kc-atmo-lucas-ground));
  --kc-chip-border: color-mix(in srgb, var(--kc-atmo-lucas-accent) 45%, var(--kc-atmo-lucas-ground));
  --kc-chip-fg: var(--kc-atmo-lucas-ink);
  --kc-place-rule: color-mix(in srgb, var(--kc-atmo-lucas-ink) 16%, var(--kc-atmo-lucas-ground));
  --kc-place-notes-bg: color-mix(in srgb, var(--kc-atmo-lucas-accent) 12%, var(--kc-atmo-lucas-ground));
}

[data-place="lucas"] .place-kicker,
[data-place="lucas"] .place-section__label {
  color: var(--kc-atmo-lucas-accent);
}

[data-place="lucas"] .place-hero img {
  border-color: var(--kc-atmo-lucas-accent);
}

[data-place="lucas"] .chip--era {
  box-shadow: inset 3px 0 0 var(--kc-atmo-lucas-accent);
}

[data-place="lucas"] .chip--connected {
  box-shadow: inset 3px 0 0 #3ecfb2;
}


/* Site chrome shell */
* { box-sizing: border-box; }
body {
  margin: 0;
  font-family: var(--kc-font-body);
  color: var(--kc-color-fg);
  background: var(--kc-color-bg);
  line-height: 1.5;
  font-size: var(--kc-text-base);
  font-weight: var(--kc-weight-regular);
}
a { color: var(--kc-color-link); }
.skip { position: absolute; left: -999px; }
.skip:focus { left: 1rem; top: 1rem; }
.site-header, .site-footer, main {
  max-width: 52rem;
  margin: 0 auto;
  padding: 1rem 1.25rem;
}
main:has(.place-page) {
  max-width: none;
  padding: 0;
}
.site-header {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: baseline;
  justify-content: space-between;
  border-bottom: 1px solid var(--kc-color-fg);
}
.mark {
  font-family: var(--kc-font-wordmark);
  font-size: var(--kc-text-wordmark);
  font-weight: var(--kc-weight-semibold);
  margin: 0;
}
.mark a { color: var(--kc-color-fg); text-decoration: none; }
nav { display: flex; gap: 1rem; }
.site-footer {
  border-top: 1px solid var(--kc-color-fg);
  font-size: var(--kc-text-sm);
}
h1 {
  font-family: var(--kc-font-wordmark);
  font-size: var(--kc-text-3xl);
  font-weight: var(--kc-weight-semibold);
}
h2 {
  font-family: var(--kc-font-wordmark);
  font-size: var(--kc-text-xl);
  font-weight: var(--kc-weight-semibold);
}
ul.plain { padding-left: 1.2rem; }
.meta { font-size: var(--kc-text-sm); }
.sources li { margin-bottom: 0.35rem; }
.empty { font-style: italic; color: var(--kc-color-nature); }
.hero { margin: 1rem 0 1.25rem; }
.hero-gallery { display: grid; gap: 0.75rem; margin: 1rem 0 1.25rem; }
@media (min-width: 40rem) {
  .hero-gallery { grid-template-columns: 1fr 1fr; }
}
.person-chip { font-size: var(--kc-text-sm); margin: 0.75rem 0; }
.person-chip a { font-weight: var(--kc-weight-semibold); }
.hero img {
  display: block;
  width: 100%;
  max-height: 28rem;
  object-fit: cover;
  border: 1px solid var(--kc-color-fg);
}
.hero .credit {
  font-size: var(--kc-text-sm);
  color: var(--kc-color-nature);
  margin: 0.35rem 0 0;
}
.structures li { margin-bottom: 0.25rem; }
.era-chips { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0.75rem 0 1rem; padding: 0; list-style: none; }
.era-chips a {
  display: inline-block;
  padding: 0.25rem 0.7rem;
  border: 1px solid var(--kc-color-fg);
  text-decoration: none;
  font-size: var(--kc-text-sm);
}
.era-chips a:hover { background: var(--kc-color-fg); color: var(--kc-color-bg); }
.timeline { list-style: none; padding: 0; margin: 0.5rem 0 1.25rem; border-left: 2px solid var(--kc-color-fg); }
.timeline li { padding: 0.35rem 0 0.35rem 1rem; position: relative; }
.timeline .year { font-weight: var(--kc-weight-semibold); margin-right: 0.35rem; }
.connected { margin: 1rem 0; }
.connected ul { padding-left: 1.2rem; }
.columns { display: grid; gap: 1.5rem; }
@media (min-width: 40rem) {
  .columns { grid-template-columns: 1fr 1fr; }
}


/* Showcase interactive: Lawrence flip, Nicodemus board, connected path */
.place-flip {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0 0 0.65rem;
}
.place-flip__btn {
  font-family: var(--kc-font-ui);
  font-size: var(--kc-text-sm);
  font-weight: var(--kc-weight-semibold);
  padding: 0.3rem 0.7rem;
  border: 1px solid var(--kc-place-rule);
  background: transparent;
  color: var(--kc-color-fg);
  cursor: pointer;
  border-radius: 0;
}
.place-flip__btn.is-active,
.place-flip__btn[aria-pressed="true"] {
  background: var(--kc-color-accent);
  border-color: var(--kc-color-accent);
  color: var(--kc-color-bg);
}
.structures-board {
  display: grid;
  gap: 1rem;
}
@media (min-width: 40rem) {
  .structures-board {
    grid-template-columns: minmax(10rem, 14rem) 1fr;
    align-items: start;
  }
}
.structures-board__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.structures-board__btn {
  display: block;
  width: 100%;
  text-align: left;
  font-family: var(--kc-font-ui);
  font-size: var(--kc-text-sm);
  padding: 0.45rem 0.65rem;
  border: 1px solid var(--kc-place-rule);
  background: var(--kc-place-notes-bg);
  color: var(--kc-color-fg);
  cursor: pointer;
}
.structures-board__btn.is-active,
.structures-board__btn[aria-pressed="true"] {
  border-color: var(--kc-color-accent);
  box-shadow: inset 3px 0 0 var(--kc-color-accent);
  font-weight: var(--kc-weight-semibold);
}
.structures-board__panel { margin: 0; }
.structures-board__panel img {
  display: block;
  width: 100%;
  max-height: 22rem;
  object-fit: cover;
  border: 1px solid var(--kc-place-rule);
}
.structures-board__claim {
  font-family: var(--kc-font-ui);
  font-size: var(--kc-place-note-size, 0.9375rem);
  margin: 0.65rem 0 0;
  line-height: 1.5;
}
.place-path {
  list-style: none;
  margin: 0;
  padding: 0 0 0.35rem;
  display: flex;
  gap: 0.75rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.place-path__step {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.55rem 0.75rem;
  border: 1px solid var(--kc-place-rule);
  background: var(--kc-place-notes-bg);
  font-family: var(--kc-font-ui);
  font-size: var(--kc-text-sm);
  white-space: nowrap;
}
.place-path__node {
  color: var(--kc-color-link);
  text-decoration: none;
  font-weight: var(--kc-weight-semibold);
}
.place-path__era {
  color: var(--kc-color-accent);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.place-path__sep {
  opacity: 0.55;
  font-size: 0.7rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.place-page .place-timeline {
  list-style: none;
  padding: 0;
  margin: 0;
  border-left: 2px solid var(--kc-place-rule);
}
.place-page .place-timeline li { padding: 0.35rem 0 0.35rem 1rem; }
.place-page .place-timeline .year {
  font-weight: var(--kc-weight-semibold);
  margin-right: 0.35rem;
}
.place-page .person-chip {
  font-family: var(--kc-font-ui);
  font-size: var(--kc-text-sm);
  margin: 0 0 1rem;
  max-width: var(--kc-place-measure);
}
