/* GENERATED by scripts/sync-brand.sh from pxyz-brand. Do not edit here. */
@font-face{font-family:'Archivo Black';font-style:normal;font-display:swap;font-weight:400;src:url(fonts/archivo-black-latin-400-normal.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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Archivo Black';font-style:normal;font-display:swap;font-weight:400;src:url(fonts/archivo-black-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'DM Sans Variable';font-style:normal;font-display:swap;font-weight:100 1000;src:url(fonts/dm-sans-latin-wght-normal.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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'DM Sans Variable';font-style:normal;font-display:swap;font-weight:100 1000;src:url(fonts/dm-sans-latin-ext-wght-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'DM Mono';font-style:normal;font-display:swap;font-weight:400;src:url(fonts/dm-mono-latin-400-normal.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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'DM Mono';font-style:normal;font-display:swap;font-weight:400;src:url(fonts/dm-mono-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'DM Mono';font-style:normal;font-display:swap;font-weight:500;src:url(fonts/dm-mono-latin-500-normal.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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'DM Mono';font-style:normal;font-display:swap;font-weight:500;src:url(fonts/dm-mono-latin-ext-500-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
/* PXYZ tokens · v3. White ground, black ink, Brite's lime as the accent. Brite itself (bootstrap-brite/) is used stock. */
:root {
  --px-paper: #ffffff;
  --px-ink: #0a0a0a;
  --px-muted: #555555;
  --px-line: #0a0a0a;
  --px-panel: #f4f4f4;
  --px-lime: #c5f26b;            /* Brite's primary family; use Brite classes for real buttons and forms */
  --px-wordmark: 'Jost', var(--px-sans);
  --px-display: 'Archivo Black', 'Arial Black', sans-serif;
  --px-sans: 'DM Sans Variable', 'DM Sans', system-ui, sans-serif;
  --px-mono: 'DM Mono', ui-monospace, monospace;
  --px-pad: clamp(16px, 4vw, 40px);
  --px-nav-h: 64px;
}
/* Load AFTER brite.css. Only what Brite doesn't do: our fonts, a white page, the metallic mark, and the vision-style document page. */

/* Jost © 2020 The Jost Project Authors (indestructible type*), SIL Open Font License 1.1. Self-hosted: fonts/jost/. Used for the PXYZ wordmark. */
@font-face { font-family: 'Jost'; font-style: normal; font-weight: 100 900; font-display: swap; src: url(fonts/Jost-VF.woff2) format('woff2'); }

:root, [data-bs-theme] {
  --bs-body-font-family: var(--px-sans);
  --bs-body-bg: var(--px-paper);
  --bs-body-color: var(--px-ink);
  --bs-heading-color: var(--px-ink);
}
html, body { background: var(--px-paper); }
body { font-family: var(--px-sans); -webkit-font-smoothing: antialiased; }
h1, h2, h3, .px-display { font-family: var(--px-display); font-weight: 400; letter-spacing: .01em; }
.px-kicker { font: 500 12px/1.4 var(--px-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--px-muted); }

/* The mark: three black rings (logo/logo-black.svg). The wordmark is typeset, never an image: */
.px-mark { display: block; }
.px-wordmark { font-family: 'Jost', var(--px-sans); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; line-height: 1; }

/* A document page in the manner of vision.html: big title, narrow column, heavy rules. */
.px-doc { max-width: 700px; margin: 0 auto; padding: 36px 20px 64px; font-size: 18px; line-height: 1.65; }
.px-doc h2 { font-size: 26px; line-height: 1.15; margin: 44px 0 14px; }
.px-doc .rule { height: 3px; background: var(--px-ink); margin: 34px 0; }
.px-doc ul { padding-left: 20px; } .px-doc li { margin-bottom: 8px; }
.px-doc a { text-decoration-thickness: 2px; text-underline-offset: 3px; color: var(--px-ink); }
.px-doc a:hover { background: var(--px-ink); color: var(--px-paper); text-decoration: none; }
.px-doc-head { display: grid; justify-items: center; gap: 22px; padding: 56px 20px 10px; text-align: center; }
.px-doc-head h1 { margin: 0; font-size: clamp(56px, 13vw, 128px); line-height: .9; }

/* Full-width page (the portal): no centred column. Edge to edge, with the same fluid side padding as the footer. */
.px-doc.px-doc-full { max-width: none; width: 100%; margin: 0; padding-inline: var(--px-pad); }
.px-page { width: 100%; padding-inline: var(--px-pad); }

/* ==========================================================================================================
   FOOTER: ONE FOOTER FOR EVERY PXYZ SURFACE (pxyz-site and pxyz-portal). EDIT ITS LOOK HERE, nowhere else.
   Markup (identical in both; links differ):
     <footer class="px-footer"><div class="px-footer-in">
       <svg class="px-footer-mark">…mark in white…</svg>
       <nav aria-label="Footer"><a href="/terms">Terms</a> … <button type="button">Contact</button></nav>
       <small>© 2026 PXYZ</small>
     </div></footer>
   After editing: rebuild the site (scripts/sync-brand.sh) and run the portal's scripts/sync-brand.sh.
   ========================================================================================================== */
.px-footer { background: #000; color: #fff; width: 100%; min-height: 300px; display: flex; align-items: flex-end; padding: 56px var(--px-pad) calc(32px + env(safe-area-inset-bottom, 0px)); }
.px-footer-in { width: 100%; display: grid; gap: 28px; }
.px-footer nav { display: flex; flex-wrap: wrap; gap: 8px 28px; }
.px-footer nav a, .px-footer nav button { color: #fff; background: none; border: 0; padding: 0; font: 500 1rem var(--px-sans); text-decoration: none; opacity: .85; transition: color .2s ease, opacity .2s ease; }
.px-footer nav a:hover, .px-footer nav button:hover { color: var(--px-lime); background: none; opacity: 1; }
.px-footer small { font: 500 .72rem var(--px-mono); letter-spacing: .1em; text-transform: uppercase; opacity: .55; }
@media (max-width: 575.98px) { .px-footer { min-height: 240px; padding-top: 40px; } .px-footer nav { gap: 10px 22px; } }
