/* Nema / Anahana print foundation.
 *
 * Consumes design-system/dist/web/tokens.css. Declares NO colour of its own:
 * every paint is a var(--ah-color-*) or a color-mix() of them, which
 * scripts/build_products.py --check-tokens enforces.
 *
 * Ground ruling (LANE I): the printed page runs on the :root scope, which is
 * the warm-paper foundation the Nema Release-1 design lock names ("warm
 * paper/neutral surfaces with deep indigo"). The Nema brand block in
 * tokens.css is a night ground built for screen; on paper it would be an
 * ink-flooded page and its text.inverse role would erase the Signal Field
 * geometry, which the angel-* recipes draw for the :root scope. Nema
 * expression is therefore carried on paper by the surface.inverse plates,
 * typographic scale, and composition density — no token is forked.
 */

/* ------------------------------------------------------------------ fonts */
@font-face {
  font-family: "Source Serif 4";
  font-style: normal;
  font-weight: 400;
  src: url("fonts/source-serif-4-400-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
    U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
  font-display: block;
}
@font-face {
  font-family: "Source Serif 4";
  font-style: normal;
  font-weight: 400;
  src: url("fonts/source-serif-4-400-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB,
    U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
  font-display: block;
}
@font-face {
  font-family: "Source Serif 4";
  font-style: italic;
  font-weight: 400;
  src: url("fonts/source-serif-4-400-italic-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+2000-206F, U+2122;
  font-display: block;
}
@font-face {
  font-family: "Source Serif 4";
  font-style: italic;
  font-weight: 400;
  src: url("fonts/source-serif-4-400-italic-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-024F, U+1E00-1EFF, U+2C60-2C7F;
  font-display: block;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400;
  src: url("fonts/inter-400-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+2000-206F, U+2122;
  font-display: block;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400;
  src: url("fonts/inter-400-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-024F, U+1E00-1EFF, U+2C60-2C7F;
  font-display: block;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 500;
  src: url("fonts/inter-500-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+2000-206F, U+2122;
  font-display: block;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 500;
  src: url("fonts/inter-500-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-024F, U+1E00-1EFF, U+2C60-2C7F;
  font-display: block;
}
/* Cyrillic (lane L65, the Russian guide, ClickUp 868mb91dc): the same four faces
   the site declares in assets/css/fonts.css with the same unicode-range, from
   the brand's own subsets in static/fonts (design-system/fonts/manifest.json).
   Only U+0400-045F and its companions select these faces, so a guide in a
   Latin script renders exactly as before. */
@font-face {
  font-family: "Source Serif 4";
  font-style: normal;
  font-weight: 400;
  src: url("fonts/source-serif-4-400-cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
  font-display: block;
}
@font-face {
  font-family: "Source Serif 4";
  font-style: italic;
  font-weight: 400;
  src: url("fonts/source-serif-4-400-italic-cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
  font-display: block;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400;
  src: url("fonts/inter-400-cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
  font-display: block;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 500;
  src: url("fonts/inter-500-cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
  font-display: block;
}
/* Greek: the brand fonts' own Greek subsets (static/fonts, declared for the site in
   assets/css/fonts.css). Without them the el guide fell back to macOS system fonts. */
@font-face {
  font-family: "Source Serif 4";
  font-style: normal;
  font-weight: 400;
  src: url("fonts/source-serif-4-400-greek.woff2") format("woff2");
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
  font-display: block;
}
@font-face {
  font-family: "Source Serif 4";
  font-style: italic;
  font-weight: 400;
  src: url("fonts/source-serif-4-400-italic-greek.woff2") format("woff2");
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
  font-display: block;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400;
  src: url("fonts/inter-400-greek.woff2") format("woff2");
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
  font-display: block;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 500;
  src: url("fonts/inter-500-greek.woff2") format("woff2");
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
  font-display: block;
}

/* ------------------------------------------------------------- page model */
* {
  box-sizing: border-box;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

html,
body {
  margin: 0;
  padding: 0;
  background: var(--ah-color-surface-paper);
  color: var(--ah-color-text-ink);
  font-family: var(--ah-font-ui);
  font-weight: var(--ah-font-weight-regular);
  font-size: 11pt;
  line-height: var(--ah-font-leading-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
}

.page {
  position: relative;
  width: var(--page-w);
  height: var(--page-h);
  overflow: hidden;
  background: var(--ah-color-surface-paper);
  break-after: page;
  page-break-after: always;
  display: flex;
  flex-direction: column;
}

.page:last-child {
  break-after: auto;
  page-break-after: auto;
}

/* The page's own reading frame. Generous by design: the Release-1 lock says
 * premium comes from space, not chrome. */
.page__inner {
  flex: 1;
  min-height: 0;
  padding: var(--frame-y) var(--frame-x);
  display: flex;
  flex-direction: column;
}

/* Night-ground plate — the Nema expression surface on paper. */
.plate {
  position: relative;
  overflow: hidden;
  background: var(--ah-color-surface-inverse);
  color: var(--ah-color-text-inverse);
}

.plate__field {
  position: absolute;
  inset: 0;
}

.plate__field svg {
  width: 100%;
  height: 100%;
  display: block;
}

.plate__body {
  position: relative;
}

/* ----------------------------------------------------------- type roles */
.eyebrow {
  font-family: var(--ah-font-ui);
  font-weight: var(--ah-font-weight-medium);
  font-size: 8pt;
  letter-spacing: var(--ah-font-tracking-caps);
  text-transform: uppercase;
  color: var(--ah-color-text-muted);
  margin: 0;
}

.plate .eyebrow {
  color: var(--ah-color-text-inverse);
  opacity: 0.72;
}

.display {
  font-family: var(--ah-font-editorial);
  font-weight: var(--ah-font-weight-regular);
  line-height: var(--ah-font-leading-display);
  letter-spacing: var(--ah-font-tracking-display);
  margin: 0;
}

.title {
  font-family: var(--ah-font-editorial);
  font-weight: var(--ah-font-weight-regular);
  font-size: 26pt;
  line-height: var(--ah-font-leading-heading);
  letter-spacing: var(--ah-font-tracking-display);
  margin: 0;
}

.subtitle {
  font-family: var(--ah-font-editorial);
  font-weight: var(--ah-font-weight-regular);
  font-size: 15pt;
  line-height: var(--ah-font-leading-lead);
  letter-spacing: var(--ah-font-tracking-tight);
  color: var(--ah-color-text-muted);
  margin: 0;
}

.numeral {
  font-family: var(--ah-font-editorial);
  font-weight: var(--ah-font-weight-regular);
  line-height: var(--ah-font-leading-numeral);
  letter-spacing: var(--ah-font-tracking-numeral);
  font-variant-numeric: lining-nums tabular-nums;
  margin: 0;
}

.prose {
  max-width: 30em;
}

.prose p {
  font-size: 11pt;
  line-height: var(--ah-font-leading-body);
  margin: 0 0 var(--ah-space-4);
  color: var(--ah-color-text-ink);
}

.prose p:last-child {
  margin-bottom: 0;
}

.lead {
  font-family: var(--ah-font-editorial);
  font-size: 13pt;
  line-height: var(--ah-font-leading-lead);
  letter-spacing: var(--ah-font-tracking-tight);
  color: var(--ah-color-text-ink);
}

/* Hairline rules and ground changes replace card chrome (universe A.4). */
.rule {
  height: var(--ah-border-hairline);
  background: var(--ah-color-line-hairline);
  border: 0;
  margin: 0;
}

.rule--accent {
  height: var(--ah-border-strong);
  width: var(--ah-space-7);
  background: var(--ah-color-brand-indigo);
}

.page__foot {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--ah-space-4);
  padding: 0 var(--frame-x) var(--frame-y);
  font-size: 7.5pt;
  letter-spacing: var(--ah-font-tracking-micro);
  color: var(--ah-color-text-subtle);
}

.plate .page__foot {
  color: var(--ah-color-text-inverse);
  opacity: 0.6;
}

/* A draft that has not cleared its language gate says so on every page. */
.draft-stamp {
  position: absolute;
  right: var(--frame-x);
  top: var(--frame-y);
  z-index: 5;
  font-family: var(--ah-font-ui);
  font-weight: var(--ah-font-weight-medium);
  font-size: 7pt;
  letter-spacing: var(--ah-font-tracking-caps);
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--ah-color-semantic-warning);
  background: var(--ah-color-semantic-warning-surface);
  border: var(--ah-border-hairline) solid var(--ah-color-semantic-warning);
  border-radius: var(--ah-radius-sm);
  padding: 3pt 6pt;
}
