
:root {
   --ground: #15403f;
   --ground-deep: #0d2827;
   --ground-black: #071414;
   --ground-surface: #1b4c4b;
   --ground-elevated: #215957;
   --ink: #f4f1ea;
   --ink-muted: #9ebeba;
   --ink-subtle: #7a9b97;
   --accent: #d69e43;
   --accent-hover: #e2ad52;
   --accent-active: #b58432;
   --accent-muted: rgba(200, 150, 62, 0.18);
   --border-heavy: #235a58;

   --border-light: #2d6b69;
   --border-accent: #c8963e;
   --danger: #d65d4e;
   --danger-bg: rgba(214, 93, 78, 0.15);
   --success: #5ca382;
   --success-bg: rgba(92, 163, 130, 0.15);
   --hazard-line: repeating-linear-gradient(45deg, #c8963e, #c8963e 10px, #15403f 10px, #15403f 20px);
   --hazard-strip: repeating-linear-gradient(-45deg, #c8963e, #c8963e 8px, #071414 8px, #071414 16px);

   --rubi-16b: "Barlow Condensed", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
   --rubi-796: "Source Sans 3", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
   --rubi-43d: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;

   --step--1: clamp(0.7813rem, 0.7378rem + 0.2174vw, 0.9063rem);
   --rubi-f3c: clamp(0.9375rem, 0.8679rem + 0.3478vw, 1.125rem);
   --rubi-503: clamp(1.125rem, 1.0207rem + 0.5217vw, 1.4063rem);
   --rubi-c89: clamp(1.35rem, 1.1987rem + 0.7565vw, 1.7578rem);
   --rubi-2d2: clamp(1.62rem, 1.4057rem + 1.0717vw, 2.1973rem);
   --rubi-31e: clamp(1.944rem, 1.6457rem + 1.4913vw, 2.7466rem);
   --rubi-426: clamp(2.3328rem, 1.9224rem + 2.0522vw, 3.4332rem);
   --rubi-8a8: clamp(2.7994rem, 2.2407rem + 2.7935vw, 4.2915rem);
   --rubi-afc: clamp(3.3592rem, 2.6053rem + 3.7696vw, 5.3644rem);

   --tracking-tight: -0.02em;
   --tracking-normal: 0em;
   --tracking-wide: 0.06em;
   --tracking-wider: 0.12em;
   --tracking-caps: 0.16em;

   --leading-none: 1.0;
   --leading-tight: 1.15;
   --leading-snug: 1.3;
   --leading-normal: 1.55;
   --leading-loose: 1.75;

   --space-3xs: clamp(0.25rem, 0.2283rem + 0.1087vw, 0.3125rem);
   --space-2xs: clamp(0.5rem, 0.4565rem + 0.2174vw, 0.625rem);
   --space-xs: clamp(0.75rem, 0.6848rem + 0.3261vw, 0.9375rem);
   --space-s: clamp(1rem, 0.913rem + 0.4348vw, 1.25rem);
   --space-m: clamp(1.5rem, 1.3696rem + 0.6522vw, 1.875rem);
   --space-l: clamp(2rem, 1.8261rem + 0.8696vw, 2.5rem);
   --space-xl: clamp(3rem, 2.7391rem + 1.3043vw, 3.75rem);
   --space-2xl: clamp(4rem, 3.6522rem + 1.7391vw, 5rem);
   --space-3xl: clamp(6rem, 5.4783rem + 2.6087vw, 7.5rem);

   --max-width: 1280px;
   --max-width-narrow: 880px;
   --max-width-measure: 68ch;
   --max-width-caption: 46ch;
   --gutter: clamp(1.25rem, 4vw, 3rem);

   --duration-fast: 160ms;
   --duration-base: 240ms;
   --duration-slow: 480ms;
   --duration-settle: 720ms;
   --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
   --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
   --ease-sharp: cubic-bezier(0.4, 0, 0.2, 1);

   --radius-none: 0px;
   --border-width: 2px;
   --border-thick: 4px;

   --focus-ring: 2px solid var(--accent);
   --focus-offset: 3px;
}

*, *::before, *::after {
   box-sizing: border-box;
   margin: 0;
   padding: 0;
}

html {
   -webkit-text-size-adjust: 100%;
   tab-size: 4;
   scroll-behavior: smooth;
   background-color: var(--ground);
}

body {
   min-height: 100vh;
   background-color: var(--ground);
   color: var(--ink);
   font-family: var(--rubi-796);
   font-size: var(--rubi-f3c);
   line-height: var(--leading-normal);
   text-rendering: optimizeLegibility;
   -webkit-font-smoothing: antialiased;
   -moz-osx-font-smoothing: grayscale;
   overflow-x: hidden;
   position: relative;
}

button, input, select, textarea {
   font: inherit;
   color: inherit;

}

img, picture, svg, video, canvas {
   display: block;
   max-width: 100%;
   height: auto;
}

h1, h2, h3, h4, h5, h6 {
   font-family: var(--rubi-16b);
   font-weight: 700;
   line-height: var(--leading-tight);
   color: var(--ink);
   text-transform: uppercase;
   letter-spacing: var(--tracking-tight);
   text-wrap: balance;
}

h1 {
   font-size: var(--rubi-8a8);
   font-weight: 800;
   letter-spacing: -0.01em;
}

h2 {
   font-size: var(--rubi-31e);
   font-weight: 700;
}

h3 {
   font-size: var(--rubi-2d2);
   font-weight: 700;
}

h4 {
   font-size: var(--rubi-c89);
   font-weight: 600;
}

h5 {
   font-size: var(--rubi-503);
   font-weight: 600;
}

h6 {
   font-size: var(--rubi-f3c);
   font-weight: 600;
}

p {

   max-width: var(--max-width-measure);
   margin-block-end: var(--space-s);
}

p:last-child {
   margin-block-end: 0;
}

a {
   color: var(--ink);
   text-decoration-thickness: 1px;
   text-underline-offset: 3px;
   transition: color var(--duration-fast) var(--ease-sharp),
                     text-decoration-color var(--duration-fast) var(--ease-sharp);
}

a:hover {
   color: var(--accent);
}

a:focus-visible {
   outline: var(--focus-ring);
   outline-offset: var(--focus-offset);
}

ul, ol {
   padding-inline-start: var(--space-m);
   margin-block-end: var(--space-s);
}

li {
   margin-block-end: var(--space-2xs);
}

strong, b {
   font-weight: 700;
   color: var(--ink);
}

em, i {
   font-style: italic;
}

small {
   font-size: var(--step--1);
   color: var(--ink-muted);
}

code, kbd, samp {
   font-family: var(--rubi-43d);
   font-size: 0.9em;
   background-color: var(--ground-black);
   color: var(--accent);
   padding: 0.15em 0.4em;
   border: 1px solid var(--border-heavy);
   overflow-wrap: break-word;
   word-break: break-word;
}

pre {
   font-family: var(--rubi-43d);
   font-size: var(--step--1);
   background-color: var(--ground-black);
   color: var(--ink);
   padding: var(--space-s);
   border: var(--border-width) solid var(--border-heavy);
   overflow-x: auto;
   max-width: 100%;
}

blockquote {
   border-inline-start: var(--border-thick) solid var(--accent);
   padding-inline-start: var(--space-m);
   margin-block: var(--space-l);
   font-size: var(--rubi-503);
   color: var(--ink);
}

hr {
   border: 0;
   border-top: var(--border-width) solid var(--border-heavy);
   margin-block: var(--space-l);
}

table {
   width: 100%;
   border-collapse: collapse;
   text-align: left;
   font-size: var(--rubi-f3c);
}

th, td {
   padding: var(--space-xs) var(--space-s);
   border-bottom: 1px solid var(--border-heavy);
   vertical-align: top;
   overflow-wrap: break-word;
   word-break: break-word;
}

th {
   font-family: var(--rubi-43d);
   font-size: var(--step--1);
   text-transform: uppercase;
   letter-spacing: var(--tracking-wide);
   color: var(--ink-muted);
   background-color: var(--ground-black);
}

.table-wrap {
   width: 100%;
   overflow-x: auto;
   border: var(--border-width) solid var(--border-heavy);
   margin-block: var(--space-m);
   -webkit-overflow-scrolling: touch;
}

.table-wrap table {
   margin: 0;
   min-width: 580px;
}

.container {
   width: 100%;
   max-width: var(--max-width);
   margin-inline: auto;
   padding-inline: var(--gutter);
}

.container-narrow {
   width: 100%;
   max-width: var(--max-width-narrow);
   margin-inline: auto;
   padding-inline: var(--gutter);
}

.container-fluid {
   width: 100%;
   padding-inline: var(--gutter);
}

.block {
   width: 100%;
   padding-block: var(--space-2xl);
   border-bottom: var(--border-thick) solid var(--border-heavy);
   position: relative;
}

.block-ground {
   background-color: var(--ground);
}

.block-deep {
   background-color: var(--ground-deep);
}

.block-black {
   background-color: var(--ground-black);
}

.block-surface {
   background-color: var(--ground-surface);
}

.block-flush {
   padding-block: 0;
}

.block-compact {
   padding-block: var(--space-xl);
}

.rule-solid {
   height: var(--border-thick);
   background-color: var(--border-heavy);
   width: 100%;
}

.rule-hazard {
   height: 10px;
   background-image: var(--hazard-line);
   width: 100%;
}

.rule-accent {
   height: var(--border-width);
   background-color: var(--accent);
   width: 100%;
}

.icon {
   width: 1.25em;
   height: 1.25em;
   fill: currentColor;
   display: inline-block;
   vertical-align: -0.2em;
   flex-shrink: 0;
}

.skip-link {
   position: absolute;
   top: -100px;
   left: 1rem;
   z-index: 10000;
   background-color: var(--accent);
   color: var(--ground-black);
   padding: 0.75rem 1.5rem;
   font-family: var(--rubi-43d);
   font-weight: 600;
   font-size: var(--rubi-f3c);
   text-transform: uppercase;
   letter-spacing: var(--tracking-wide);
   border: 2px solid var(--ink);
   text-decoration: none;
   transition: top var(--duration-fast) var(--ease-sharp);
}

.skip-link:focus {
   top: 1rem;
   outline: 3px solid var(--ink);
   outline-offset: 2px;
}

.text-mono {
   font-family: var(--rubi-43d);
}

.text-display {
   font-family: var(--rubi-16b);
}

.text-accent {
   color: var(--accent);
}

.text-muted {
   color: var(--ink-muted);
}

.text-upper {
   text-transform: uppercase;
   letter-spacing: var(--tracking-wide);
}

.sr-only {
   position: absolute;
   width: 1px;
   height: 1px;
   padding: 0;
   margin: -1px;
   overflow: hidden;
   clip: rect(0, 0, 0, 0);
   white-space: nowrap;
   border: 0;
}

.grid {
   display: grid;
   gap: var(--space-l);
}

.grid > * {
   min-width: 0;
}

.flex {
   display: flex;
   gap: var(--space-s);
}

.flex > * {
   min-width: 0;
}

.spec-ticker-track {
   display: flex;
   white-space: nowrap;
   width: max-content;
   animation: tickerScroll 42s linear infinite;
}

@media (prefers-reduced-motion: reduce) {
   *, *::before, *::after {
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.01ms !important;
      scroll-behavior: auto !important;
   }
}
