:root{
--edge-black:#171716;
--infrastructure-white:#f1efe8;
--field-orange:#ff5a1f;
--realm-mint:#c8dccb;
--structural-olive:#7a6b43;
--concrete:#d7cfb5;
--information-blue:#afcfea;

--state-operational:var(--realm-mint);
--state-active:var(--field-orange);
--state-warning:#e2a93b;
--state-critical:#c9483d;
--state-offline:#6c6c67;
--state-information:var(--information-blue);

--family-realms:var(--realm-mint);
--family-compute:var(--edge-black);
--family-photon:var(--field-orange);
--family-water:var(--information-blue);
--family-communications:var(--realm-mint);
--family-mobile:var(--field-orange);
--family-storage:var(--concrete);
--family-human:var(--infrastructure-white);

--surface-canvas:var(--infrastructure-white);
--surface-panel:#fafaf6;
--surface-panel-raised:#ffffff;
--surface-canvas-dark:var(--edge-black);
--surface-panel-dark:#242422;
--surface-panel-dark-raised:#302f2b;

--border:rgba(23,23,22,0.18);
--border-strong:rgba(23,23,22,0.42);
--border-dark:rgba(255,255,255,0.20);
--border-dark-strong:rgba(255,255,255,0.38);

--text-primary:var(--edge-black);
--text-secondary:rgba(23,23,22,0.68);
--text-muted:rgba(23,23,22,0.46);
--text-on-dark:var(--infrastructure-white);
--text-secondary-on-dark:rgba(255,255,255,0.72);
--text-muted-on-dark:rgba(255,255,255,0.50);
--text-on-accent:var(--edge-black);

--edge-black-hover:#2c2c29;
--field-orange-hover:#e6531c;
--state-critical-hover:#b34039;
--focus-ring:rgba(23,23,22,0.15);
--focus-ring-critical:rgba(201,72,61,0.22);
--scrim:rgba(23,23,22,0.5);
}
/* blueprint mode — tan drafting ground (thesis canon, ds v1.1) */
html[data-theme="tan"]{
--surface-canvas:#ddd4bd;
--surface-panel:#e6dfcb;
--surface-panel-raised:#efe9da;
--border:rgba(23,23,22,0.22);
--border-strong:rgba(23,23,22,0.46);
--text-secondary:rgba(23,23,22,0.66);
--text-muted:rgba(23,23,22,0.48);
}

:root{
--font-sans:'Geist',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
--font-mono:'Geist Mono',ui-monospace,'SFMono-Regular','IBM Plex Mono',monospace;

--weight-regular:400;
--weight-medium:500;
--weight-semibold:600;
--weight-bold:700;
--weight-black:800;

--text-display-xl:96px;
--text-display-lg:64px;
--text-display-md:48px;
--text-heading-xl:32px;
--text-heading-lg:24px;
--text-heading-md:20px;
--text-body-lg:17px;
--text-body-md:15px;
--text-body-sm:13px;
--text-mono-lg:16px;
--text-mono-md:14px;
--text-mono-sm:12px;
--text-label-sm:11px;

--tracking-tight:-0.02em;
--tracking-normal:0em;
--tracking-label:0.08em;
--tracking-wide:0.12em;

--leading-tight:1.05;
--leading-snug:1.25;
--leading-normal:1.5;
}

:root{
--space-0:0px;
--space-1:4px;
--space-2:8px;
--space-3:12px;
--space-4:16px;
--space-5:24px;
--space-6:32px;
--space-7:48px;
--space-8:64px;
--space-9:96px;
--space-10:128px;
}

:root{
--radius-0:0px;
--radius-sm:2px;
--radius-md:4px;
--radius-lg:6px;
}

:root{
--duration-instant:80ms;/* @kind other */
--duration-fast:130ms;/* @kind other */
--duration-base:200ms;/* @kind other */
--duration-slow:320ms;/* @kind other */
--ease-mechanical:cubic-bezier(.4,0,.2,1);/* @kind other */
--ease-linear:linear;/* @kind other */
}

@font-face{font-family:'Geist';src:url("/assets/geist.woff2") format('woff2');font-weight:100 900;font-style:normal;font-display:swap;}
@font-face{font-family:'Geist Mono';src:url("/assets/geist-mono.woff2") format('woff2');font-weight:100 900;font-style:normal;font-display:swap;}


/* firmamint — the Frontier ground, unchanged: bone canvas, ink line field */
*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%}
body{background:var(--infrastructure-white)}
img{display:block;max-width:100%}
.ff-mono{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase}

.fg-page{background:var(--infrastructure-white);color:var(--edge-black);font-family:var(--font-sans);height:100vh;height:100svh;min-height:640px;display:flex;flex-direction:column;overflow:hidden}

/* the line field — Frontier's, as-is */
.fl-lines{background-image:repeating-linear-gradient(0deg,transparent 0 71px,var(--border-strong) 71px 72px);animation:flDriftY 40s linear infinite}
.fl-lines-over{position:absolute;inset:0;pointer-events:none;background-image:repeating-linear-gradient(0deg,transparent 0 71px,var(--infrastructure-white) 71px 73px);animation:flDriftY 40s linear infinite;z-index:3}
@keyframes flDriftY{to{background-position-y:72px}}
.fl-traveler{position:absolute;width:9px;height:9px;margin-top:-4px;background:var(--field-orange);z-index:4;animation:flTravel linear infinite}
.fl-traveler.d{transform:rotate(45deg);background:var(--edge-black)}
@keyframes flTravel{from{left:-2%}to{left:102%}}

/* wordmark */
.fg-brand{flex:none;padding:28px 6vw 0;position:relative;z-index:5}
.fg-brand img{height:22px;width:auto}

/* hero */
.fg-hero{position:relative;flex:1 1 42%;display:flex;align-items:center;overflow:hidden;min-height:0}
.fg-copy{position:relative;z-index:5;padding:0 6vw;max-width:1280px}
.fg-title{font-size:clamp(36px,5.6vw,84px);line-height:1;font-weight:700;letter-spacing:-0.035em}
.fg-sub{margin-top:clamp(14px,1.6vw,22px);font-size:clamp(17px,1.9vw,26px);line-height:1.3;font-weight:500;letter-spacing:-0.01em;color:var(--text-secondary)}


/* the subline sits on a clear bone band so the field never strikes through them */
.fg-sub{width:fit-content;background:var(--infrastructure-white);box-shadow:0 0 0 6px var(--infrastructure-white)}

/* Frontier's legend, top right: the line that carries the stance */
.fl-legend{position:absolute;right:7vw;top:20%;z-index:5;font-size:11px;text-align:right;line-height:2.2;color:var(--text-secondary);background:var(--infrastructure-white);box-shadow:0 0 0 6px var(--infrastructure-white)}
.fl-legend span{color:var(--edge-black);font-weight:600}

/* live panel — Frontier's, held still, full bleed: orange sweep, the word revealed behind it */
.ff-kb{overflow:hidden;position:relative}
.ff-kb img{width:100%;height:100%;object-fit:cover;object-position:50% 50%;display:block}
.fl-panel{flex:1 1 58%;min-height:0;border-top:1px solid var(--border-strong)}
.fl-panel img{filter:brightness(.82)}
.ff-sweep{position:absolute;top:0;bottom:0;width:2px;background:var(--field-orange);box-shadow:0 0 0 1px rgba(255,90,31,.25);animation:ffSweep 7s cubic-bezier(.4,0,.6,1) infinite;z-index:2}
.ff-sweep::after{content:"";position:absolute;inset:0 -60px 0 0;background:linear-gradient(90deg,transparent,rgba(255,90,31,.14))}
@keyframes ffSweep{0%{left:4%}50%{left:96%}100%{left:4%}}
.fl-scanwords{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:1;pointer-events:none}
.fl-scanwords > span{position:absolute;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:clamp(8px,1vw,14px);text-align:center;color:var(--infrastructure-white);animation:flWipe 7s cubic-bezier(.4,0,.6,1) infinite}
.fl-scanwords b{text-shadow:0 2px 24px rgba(23,23,22,.35);font-weight:700;font-size:clamp(38px,6vw,94px);line-height:1;letter-spacing:-0.03em;text-transform:uppercase;white-space:nowrap}
.fl-scanwords small{font-family:var(--font-mono);font-size:clamp(10px,.95vw,13px);letter-spacing:.1em;text-transform:uppercase;line-height:1.6;max-width:min(90vw,640px);padding:0 16px;text-shadow:0 1px 2px rgba(23,23,22,.7),0 0 14px rgba(23,23,22,.75)}
@keyframes flWipe{0%{clip-path:inset(0 96% 0 0)}50%{clip-path:inset(0 4% 0 0)}100%{clip-path:inset(0 96% 0 0)}}

/* footer — Frontier's close + seal */
.fg-foot{flex:none;height:56px;display:flex;align-items:center;justify-content:center;font-size:11px;letter-spacing:.16em;background:var(--infrastructure-white)}
.fg-seal{background:var(--edge-black);height:40px;flex:none}

@media (max-width:640px){
  .fg-brand{padding-top:22px}
  .fg-brand img{height:17px}
  .fl-panel{flex:none;aspect-ratio:1573/1000}
  .fl-legend{right:5vw;top:14%;font-size:10px;line-height:2}
}
@media (prefers-reduced-motion:reduce){
  .fl-lines,.fl-lines-over,.fl-traveler{animation:none}
  .fl-traveler{display:none}
  .ff-sweep,.fl-scanwords > span{animation:none}
  .ff-sweep{display:none}
  .fl-scanwords > span{clip-path:none}
}
