/* No line of copy ends on a single word (owner 2026-10-03). Headings balance; body copy prefers no orphan,
   and its last two words are also joined at export for browsers without text-wrap-style: pretty. */
h1, h2, h3, h4, h5, h6, summary, .display, .h1, .h2, .h3, .h4, .h5, .h6, li > span { text-wrap-style: balance; }
p, li, dd, dt, blockquote, figcaption, label { text-wrap-style: pretty; }

/* The logo mark (2026-10-04): the box outline takes the theme blue (the dark theme's button blue, the light
   theme's link blue); the bolts are currentColor, the wordmark's colour. Only one picture of the glitch shows.
   The nested mark svg must not take the logo's own size (.brand svg is 100 x 40) or its hover lift. */
:root { --mark-box: #5F6CDE; }
:root[data-theme="light"] { --mark-box: #383DA3; }
/* outline thickness: --mark-sw, screen px, set per logo by glitch-logo.js (thicker, relative to the logo, as
   the logo gets smaller); 1.3px, the nav value, without script */
.mk-box { stroke: var(--mark-box); stroke-width: var(--mark-sw, 2px); vector-effect: non-scaling-stroke; transition: stroke .34s ease; }
/* the nav takes the ground it sits on (2026-10-06): --nav-ground is set by nav_ground.js; the page background without script */
html .sitenav { background: color-mix(in srgb, var(--nav-ground, var(--background)) 90%, transparent); transition: background-color .3s ease; }   /* html: outranks base.css, whichever loads last */
@media (prefers-reduced-motion: reduce) { html .sitenav { transition: none; } }
/* the outline is 2px heavier than the box was drawn for (owner 2026-10-05), so it reaches past the edge of each logo svg:
   let it draw there instead of being clipped (an inline svg clips its overflow by default) */
.sitenav .brand > svg, .sitefooter .legal > .mark, .mk-teaser svg { overflow: visible; }
/* the footer icon (2026-10-04): the bottom-right corner, opposite the nav logo; 40px high like the nav logo */
.sitefooter .legal { align-items: center; }
.sitefooter .legal-text { display: flex; flex-wrap: wrap; gap: var(--sp-4); }
.sitefooter .legal > .mark { height: 40px; width: auto; flex: none; color: var(--logo-text); }
.sitefooter .mark .gl-f { display: none; }
.sitefooter .mark .gl-f.is-on { display: inline; }
.sitenav .brand .gl-f { display: none; }
.sitenav .brand .gl-f.is-on { display: inline; }
.sitenav .brand svg.gl, .sitenav .brand:hover svg.gl { width: 93.348px; height: 143.702px; display: inline; transform: none; filter: none; transition: none; }

/* Utilities: one class per declaration, generated from the style="" attributes the builders emit
   for data-driven values. !important keeps the precedence an inline style had. */
.u-abs { position: absolute !important; }
.u-bg-000c7d { background: #000c7d !important; }
.u-bg-0034a6 { background: #0034a6 !important; }
.u-bg-0057d0 { background: #0057d0 !important; }
.u-bg-020056 { background: #020056 !important; }
.u-bg-050514 { background: #050514 !important; }
.u-bg-0e0d20 { background: #0e0d20 !important; }
.u-bg-1479fb { background: #1479fb !important; }
.u-bg-18182d { background: #18182d !important; }
.u-bg-23233a { background: #23233a !important; }
.u-bg-2b0100 { background: #2b0100 !important; }
.u-bg-2e2e47 { background: #2e2e47 !important; }
.u-bg-3d95ff { background: #3d95ff !important; }
.u-bg-54556f { background: #54556f !important; }
.u-bg-562800 { background: #562800 !important; }
.u-bg-5eb1ff { background: #5eb1ff !important; }
.u-bg-7e7f9a { background: #7e7f9a !important; }
.u-bg-7eceff { background: #7eceff !important; }
.u-bg-835000 { background: #835000 !important; }
.u-bg-9deaff { background: #9deaff !important; }
.u-bg-abacc7 { background: #abacc7 !important; }
.u-bg-b47c00 { background: #b47c00 !important; }
.u-bg-dadbf6 { background: #dadbf6 !important; }
.u-bg-e6a91d { background: #e6a91d !important; }
.u-bg-f3b841 { background: #f3b841 !important; }
.u-bg-ffc85b { background: #ffc85b !important; }
.u-bg-ffd873 { background: #ffd873 !important; }
.u-bg-ffe889 { background: #ffe889 !important; }
.u-c-2563eb { --c: #2563eb !important; }
.u-c-dc2626 { --c: #dc2626 !important; }
.u-color-111317 { color: #111317 !important; }
.u-color-ffffff { color: #ffffff !important; }
.u-color-focus { color: var(--focus) !important; }
.u-color-heading { color: var(--text-heading) !important; }
.u-color-link { color: var(--link) !important; }
.u-color-text { color: var(--text) !important; }
.u-e-2c24a6 { --e: #2c24a6 !important; }
.u-e-791f1f { --e: #791f1f !important; }
.u-font-bodoni-moda { font-family: 'Bodoni Moda', 'Didot', 'Bodoni 72', serif !important; }
.u-font-dm-sans { font-family: 'DM Sans','Segoe UI',sans-serif !important; }
.u-font-ibm-plex-mono { font-family: 'IBM Plex Mono',monospace !important; }
.u-font-inter { font-family: 'Inter', 'Helvetica Neue', Helvetica, Arial, sans-serif !important; }
.u-font-playfair-display { font-family: 'Playfair Display',Georgia,serif !important; }
.u-full { width: 100% !important; }
.u-height-56 { height: 56px !important; }
.u-height-80 { height: 80px !important; }
.u-left-15 { left: 15% !important; }
.u-left-20 { left: 20% !important; }
.u-left-22 { left: 22% !important; }
.u-left-25 { left: 25% !important; }
.u-left-30 { left: 30% !important; }
.u-left-36 { left: 36% !important; }
.u-left-38 { left: 38% !important; }
.u-left-40 { left: 40% !important; }
.u-left-45 { left: 45% !important; }
.u-left-50 { left: 50% !important; }
.u-left-55 { left: 55% !important; }
.u-left-60 { left: 60% !important; }
.u-left-66 { left: 66% !important; }
.u-left-67 { left: 67% !important; }
.u-left-70 { left: 70% !important; }
.u-left-72 { left: 72% !important; }
.u-left-75 { left: 75% !important; }
.u-left-80 { left: 80% !important; }
.u-mask-luminance { mask-type: luminance !important; }
.u-mt-16 { margin-top: 16px !important; }
.u-span-12 { grid-column: 1/13 !important; }
.u-top-24 { top: 24% !important; }
.u-top-66 { top: 66% !important; }
.u-weight-500 { font-weight: 500 !important; }
.u-width-56 { width: 56px !important; }
.u-width-80 { width: 80px !important; }
.u-x-031 { --x: .31 !important; }
.u-x-058 { --x: .58 !important; }
.u-x-072 { --x: .72 !important; }
