/* PERSPACE BRAND TOKENS · generated by hq/brand/build-brand.py from brand.json v1.0.0 (2026-10-09). Do not edit by hand. */
@import url("https://api.fontshare.com/v2/css?f[]=satoshi@300,400,500,700&display=swap");
@font-face{font-family:'Donegal One';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/DonegalOne-Regular.woff2') format('woff2')}
:root{
  --ps-warm-white:#F6F7F2; /* Warm White · Primary background · 60% */
  --ps-soft-grey:#E9EAE8; /* Soft Grey · Secondary neutral · 15% */
  --ps-ice-blue:#DCE8EE; /* Ice Blue · Light accent · 10% */
  --ps-steel-blue:#A9BBC5; /* Steel Blue · Secondary accent · 7% */
  --ps-midnight-navy:#0D1C2C; /* Midnight Navy · Primary dark: text and key shapes · 7% */
  --ps-silver:#A6A9AA; /* Silver · Chromatic metal effect · 1% */
  --ps-ink:#0D1C2C; /* text, derived */
  --ps-ink-2:#4E5963; /* text, derived */
  --ps-ink-3:#666F77; /* text, derived */
  --ps-line:#E9EAE8; /* text, derived */
  --ps-line-strong:#D5D8D6; /* text, derived */
  --ps-data-operations:#0D1C2C; /* Operations row · ADOPTED 9 Oct 2026 */
  --ps-data-operations-tint:#E1E5E9; /* Operations tint · ADOPTED 9 Oct 2026 */
  --ps-data-revenue:#2F6B7C; /* Revenue row · ADOPTED 9 Oct 2026 */
  --ps-data-revenue-tint:#DCE8EE; /* Revenue tint · ADOPTED 9 Oct 2026 */
  --ps-data-support:#7891A0; /* Support row · ADOPTED 9 Oct 2026 */
  --ps-data-support-tint:#E4EBEF; /* Support tint · ADOPTED 9 Oct 2026 */
  --ps-data-margin:#A88A5C; /* Margin row · ADOPTED 9 Oct 2026 */
  --ps-data-margin-tint:#EFE7DA; /* Margin tint · ADOPTED 9 Oct 2026 */
  --ps-data-risk:#9C3F35; /* Risk row · ADOPTED 9 Oct 2026 */
  --ps-data-risk-tint:#F2E2DE; /* Risk tint · ADOPTED 9 Oct 2026 */
  --ps-state-live:#2F6B7C; /* Live, measured · ADOPTED 9 Oct 2026 */
  --ps-state-held:#0D1C2C; /* A person holds it · ADOPTED 9 Oct 2026 */
  --ps-state-simulated:#A6A9AA; /* Simulated, quiet · ADOPTED 9 Oct 2026 */
  --ps-state-stuck:#9C3F35; /* Stuck · ADOPTED 9 Oct 2026 */
  --ps-state-empty:#E9EAE8; /* No data (an empty cell) · ADOPTED 9 Oct 2026 */
  --ps-ev-pattern:#DCE8EE; /* Pattern · ADOPTED 9 Oct 2026 */
  --ps-ev-sized:#A9BBC5; /* Sized from your data · ADOPTED 9 Oct 2026 */
  --ps-ev-validated:#4E6878; /* Owner validated · ADOPTED 9 Oct 2026 */
  --ps-ev-live:#0D1C2C; /* Agent live and measured · ADOPTED 9 Oct 2026 */
  --ps-font-head:'Donegal One', Georgia, 'Times New Roman', serif;
  --ps-font-body:'Satoshi', -apple-system, 'Segoe UI', system-ui, sans-serif;
  --ps-fs-micro:10px;
  --ps-fs-label:11px;
  --ps-fs-caption:12px;
  --ps-fs-body:13px;
  --ps-fs-lead:15px;
  --ps-fs-title:18px;
  --ps-fs-h3:24px;
  --ps-fs-h2:32px;
  --ps-fs-h1:48px;
  --ps-fs-display:80px;
  --ps-fs-hero:120px;
  --ps-fs-read-body:20px;
  --ps-fs-read-body-lg:24px;
  --ps-fs-read-caption:18px;
  --ps-lh-display:1.05;
  --ps-lh-heading:1.1;
  --ps-lh-text:1.32;
  --ps-space-4:4px;
  --ps-space-8:8px;
  --ps-space-12:12px;
  --ps-space-16:16px;
  --ps-space-20:20px;
  --ps-space-24:24px;
  --ps-space-32:32px;
  --ps-space-40:40px;
  --ps-space-48:48px;
  --ps-space-64:64px;
  --ps-space-80:80px;
  --ps-space-120:120px;
  --ps-pad:40px;
  --ps-radius-none:0px;
  --ps-radius-sm:0px;
  --ps-radius-pill:0px;
  --ps-grad-1:radial-gradient(120% 120% at 60% 40%, #DCE8EE 0%, #E6EDEF 45%, #F6F7F2 100%);
  --ps-grad-2:linear-gradient(90deg, #E9EAE8 0%, #DCE8EE 30%, #A9BBC5 75%, #A9BBC5 100%);
  --ps-grad-3:radial-gradient(80% 60% at 70% 85%, #FFFFFF 0%, rgba(255,255,255,0) 60%), linear-gradient(160deg, #6E7172 0%, #A6A9AA 40%, #E9EAE8 70%, #FFFFFF 100%);
  --ps-grad-4:linear-gradient(200deg, #0D1C2C 0%, #4A5F70 35%, #A9BBC5 70%, #DCE8EE 100%);
  --ps-grad-5:linear-gradient(20deg, #0D1C2C 0%, #4A6072 30%, #A9BBC5 60%, #DCE8EE 85%, #F6F7F2 100%);
  --ps-grad-6:radial-gradient(90% 120% at 25% 40%, #0D1C2C 0%, #2B3D4F 40%, #7A8F9C 80%, #A9BBC5 100%);
  --ps-metal:linear-gradient(115deg, #F6F7F2 0%, #A6A9AA 16%, #4A5560 30%, #DCE8EE 44%, #B8B4C8 56%, #E6DAC4 68%, #A6A9AA 84%, #F6F7F2 100%);
  --ps-metal-split:drop-shadow(-0.5px 0 rgba(255,70,100,.18)) drop-shadow(0.5px 0 rgba(70,160,255,.18));
  --ps-grain-opacity:0.08;
}
/* opt-in classes. Effects are for brand moments only (site hero, covers, social), never a Grip working screen. */
.ps-type{font-family:var(--ps-font-body);color:var(--ps-ink);background:var(--ps-warm-white)}
.ps-h1,.ps-h2,.ps-h3,.ps-display{font-family:var(--ps-font-head);font-weight:400;letter-spacing:-0.01em;line-height:var(--ps-lh-heading)}
.ps-display{font-size:var(--ps-fs-display);line-height:var(--ps-lh-display)}.ps-h1{font-size:var(--ps-fs-h1)}.ps-h2{font-size:var(--ps-fs-h2)}.ps-h3{font-size:var(--ps-fs-h3)}
.ps-sub{font-family:var(--ps-font-body);font-weight:700;font-size:var(--ps-fs-title)}
.ps-small{font-family:var(--ps-font-body);font-weight:500;font-size:var(--ps-fs-caption);line-height:var(--ps-lh-text)}
.ps-glass{background:rgba(246,247,242,.55);backdrop-filter:blur(20px) saturate(1.1);-webkit-backdrop-filter:blur(20px) saturate(1.1);border:1px solid rgba(255,255,255,.55);box-shadow:inset 0 1px 0 rgba(255,255,255,.6), 0 8px 32px rgba(13,28,44,.08)}
.ps-metal-text{background:var(--ps-metal);-webkit-background-clip:text;background-clip:text;color:transparent;filter:var(--ps-metal-split)}
.ps-grain{position:relative;isolation:isolate}.ps-grain::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:var(--ps-grain-opacity);mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.ps-grad-1{background:var(--ps-grad-1)}
.ps-grad-2{background:var(--ps-grad-2)}
.ps-grad-3{background:var(--ps-grad-3)}
.ps-grad-4{background:var(--ps-grad-4)}
.ps-grad-5{background:var(--ps-grad-5)}
.ps-grad-6{background:var(--ps-grad-6)}
