
:root {
    --ground:#4b544e;
    --slate-deep:#37413b;
    --chalk:#f1f0e7;
    --chalk-muted:#c9cec2;
    --signal:#e6c85c;
    --rule:#849087;
    --black:#202923;
    --ground-soft:#566159;
    --ground-dark:#414a44;
    --signal-dark:#b49a32;
    --signal-wash:rgba(230, 200, 92, .14);
    --chalk-wash:rgba(241, 240, 231, .08);
    --rule-soft:rgba(201, 206, 194, .22);
    --shadow-deep:0 1.25rem 3rem rgba(20, 27, 23, .24);
    --shadow-tight:0 .35rem 1rem rgba(20, 27, 23, .2);
    --shell:1240px;
    --gutter:clamp(1rem, 3vw, 3rem);
    --gap:clamp(1rem, 2.5vw, 2.5rem);
    --section-space:clamp(4rem, 9vw, 9rem);
    --measure:68ch;
    --display:"Hanken Grotesk", sans-serif;
    --body:"Nunito Sans", sans-serif;
    --mono:"IBM Plex Mono", monospace;
    --step--2:clamp(.7rem, .68rem + .1vw, .78rem);
    --step--1:clamp(.82rem, .78rem + .18vw, .96rem);
    --geko-9e2:clamp(.98rem, .92rem + .24vw, 1.1rem);

    --geko-7ac:clamp(1.15rem, 1.03rem + .52vw, 1.45rem);
    --geko-c68:clamp(1.4rem, 1.12rem + 1.15vw, 2rem);
    --geko-68f:clamp(1.8rem, 1.32rem + 2vw, 3rem);
    --geko-270:clamp(2.25rem, 1.5rem + 3.4vw, 4.6rem);
    --geko-324:clamp(2.8rem, 1.72rem + 5vw, 6.8rem);
    --lh-tight:1.02;
    --lh-heading:1.09;
    --lh-body:1.62;
    --lh-label:1.3;
    --tracking-tight:-.035em;
    --tracking-label:.08em;
    --ease-standard:cubic-bezier(.2, .65, .25, 1);
    --ease-sharp:cubic-bezier(.7, 0, .2, 1);
    --ease-spring:cubic-bezier(.22, 1.2, .36, 1);
    --duration-fast:160ms;
    --duration-base:280ms;
    --duration-slow:700ms;
}

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

html { min-width: 320px; scroll-behavior: smooth; background: var(--ground); }
body { margin: 0; min-width: 320px; overflow-x: hidden; background: var(--ground); color: var(--chalk); font-family: var(--body); font-size: var(--geko-9e2); line-height: var(--lh-body); text-rendering: optimizeLegibility; }

button, input, select, textarea { font: inherit; color: inherit; }
button, [type="button"], [type="submit"] { cursor: pointer; }
img, svg, video { display: block; max-width: 100%; }
img { height: auto; }
svg { fill: currentColor; }
a { color: var(--chalk); text-decoration-thickness: .08em; text-underline-offset: .18em; }
a:hover { color: var(--signal); }
button { border: 0; }
fieldset { min-width: 0; border: 0; padding: 0; margin: 0; }
legend { padding: 0; }
label { display: block; }
input, select, textarea { max-width: 100%; }
textarea { resize: vertical; }
::selection { color: var(--black); background: var(--signal); }
:focus-visible { outline: 2px solid var(--signal); outline-offset: 4px; }

h1, h2, h3, h4, h5, h6, p, ul, ol, dl, blockquote, figure { margin: 0; }
h1, h2, h3, h4, h5, h6 { color: var(--chalk); font-family: var(--display); font-weight: 600; letter-spacing: var(--tracking-tight); line-height: var(--lh-heading); text-wrap: balance; }
h1 { font-size: var(--geko-324); }
h2 { font-size: var(--geko-270); }
h3 { font-size: var(--geko-68f); }
h4 { font-size: var(--geko-c68); }
h5 { font-size: var(--geko-7ac); }
p, li, dd { max-width: var(--measure); }
p + p { margin-top: 1.1em; }
strong { font-weight: 700; color: var(--chalk); }
small { font-size: var(--step--1); }
code, pre, kbd, .mono, time, .price, .meta, output { font-family: var(--mono); font-variant-numeric: tabular-nums; }
ul, ol { padding-left: 1.4rem; }
.prose > * + * { margin-top: 1.15em; }
.prose h2, .prose h3 { margin-top: 2.1em; }
.prose ul, .prose ol { padding-left: 1.35rem; }
.prose li + li { margin-top: .45rem; }
.prose blockquote { border-left: 2px solid var(--signal); padding: .35rem 0 .35rem 1.25rem; font-family: var(--display); font-size: var(--geko-c68); line-height: 1.18; }
.prose table { width: 100%; border-collapse: collapse; }
.prose hr { border: 0; border-top: 1px solid var(--rule-soft); margin: 3rem 0; }

.shell { width: min(var(--shell), calc(100% - (var(--gutter) * 2))); margin-inline: auto; }
.full-bleed { width: 100%; }
.flow > * + * { margin-top: var(--flow-space, 1.5rem); }
.stack { display: flex; flex-direction: column; gap: var(--gap); min-width: 0; }
.cluster { display: flex; flex-wrap: wrap; align-items: center; gap: var(--gap); min-width: 0; }
.grid { display: grid; gap: var(--gap); min-width: 0; }
.grid > * { min-width: 0; }
.grid-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.content-measure { width: min(100%, var(--measure)); }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.skip-link { position: fixed; z-index: 100; top: .75rem; left: .75rem; transform: translateY(-180%); background: var(--signal); color: var(--black); padding: .7rem 1rem; font-weight: 700; transition: transform var(--duration-fast) var(--ease-standard); }
.skip-link:focus { transform: translateY(0); }

.rule-top { border-top: 1px solid var(--rule-soft); }
.rule-bottom { border-bottom: 1px solid var(--rule-soft); }
.scanline { background-image: linear-gradient(to bottom, rgba(241,240,231,.035) 1px, transparent 1px); background-size: 100% 7px; }
.bracket { position: relative; }
.bracket::before, .bracket::after { position: absolute; width: 1.25rem; height: 1.25rem; border-color: var(--signal); border-style: solid; content: ''; pointer-events: none; }
.bracket::before { top: 0; left: 0; border-width: 1px 0 0 1px; }
.bracket::after { right: 0; bottom: 0; border-width: 0 1px 1px 0; }
.tick-label { color: var(--chalk-muted); font-family: var(--mono); font-size: var(--step--2); letter-spacing: var(--tracking-label); line-height: var(--lh-label); text-transform: uppercase; }

@media (max-width: 760px) {
    .grid-two, .grid-three { grid-template-columns: 1fr; }
    .cluster { align-items: flex-start; }
    .shell { width: min(var(--shell), calc(100% - 2rem)); }
}
@media (max-width: 420px) {
    :root { --gap: 1rem; }
    .shell { width: min(var(--shell), calc(100% - 1.5rem)); }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: 1ms !important; animation-iteration-count: 1 !important; transition-duration: 1ms !important; }
    .marquee__track { transform: none !important; }
}

.surface-deep { background: var(--slate-deep); color: var(--chalk); }
.surface-black { background: var(--black); color: var(--chalk); }
.text-muted { color: var(--chalk-muted); }
.text-signal { color: var(--signal); }
.mono { letter-spacing: .015em; }
.icon { width: 1.2em; height: 1.2em; flex: 0 0 auto; }
.icon-lg { width: 1.6rem; height: 1.6rem; }
.section-space { padding-block: var(--section-space); }
.section-space-tight { padding-block: clamp(2.5rem, 5vw, 5rem); }
.pad-inline { padding-inline: var(--gutter); }
.aspect-wide { aspect-ratio: 3 / 2; overflow: hidden; }
.aspect-wide img, .aspect-wide picture { width: 100%; height: 100%; object-fit: cover; }
.no-js .js-only { display: none !important; }
.js .js-hidden { display: none !important; }
[hidden] { display: none !important; }

@media (min-width: 761px) {
    .only-mobile { display: none !important; }
}
@media (max-width: 760px) {
    .only-desktop { display: none !important; }
}
