/* ============================================================
   GATEWAY — enforcement site. "The Checkpoint."
   NiaShield answers in violet; GatewayEnforcer answers in teal —
   the instrument-panel signal of a system that verifies and proves.
   Same skeleton, same type system, one accent swapped.
   Constants: Public Sans, one teal, Red Hat Display Black
   reserved for marks only (Gateway, Heaviside AI, NiaShield,
   SDIP-6, Certificate of Incineration). Self-hosted below.
   IBM Plex Mono for cryptographic material.
   ============================================================ */

@font-face{
  font-family:'Red Hat Display';
  font-style:normal;
  font-weight:900;
  font-display:swap;
  src:url('RedHatDisplay-Black.ttf') format('truetype');
}

:root{
  --void:#0B0C10;          /* page ground */
  --enclave:#14161D;       /* raised panels */
  --enclave-2:#1A1D26;     /* hover / inner panels */
  --paper:#F2F3F6;         /* primary text */
  --ash:#9AA0AC;           /* secondary text */
  --ash-dim:#6C717C;       /* tertiary / legal */
  --accent:#06B6D4;        /* signal teal, tuned for dark */
  --accent-deep:#0E7490;   /* deep teal, fills/buttons (AA on white) */
  --ember:#FF5A45;         /* burn gradient tip only */
  --hairline:rgba(242,243,246,.09);
  --hairline-2:rgba(242,243,246,.16);
  --sans:'Public Sans',-apple-system,'Helvetica Neue',Arial,sans-serif;
  --mark:'Red Hat Display',var(--sans);
  --mono:'IBM Plex Mono','SF Mono',Menlo,Consolas,monospace;
  --shell:1080px;
  --measure:62ch;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--sans);font-size:17px;line-height:1.7;color:var(--paper);
  background:var(--void);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%}
::selection{background:var(--accent-deep);color:#fff}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}

.shell{max-width:var(--shell);margin:0 auto;padding:0 28px}

/* Reserved marks */
.wm{font-family:var(--mark);font-weight:900;letter-spacing:-.01em}
.wm .ai{color:var(--accent)}
.rn{font-family:var(--mark);font-weight:900;font-style:normal}

/* ---------- header ---------- */
header.site{border-bottom:1px solid var(--hairline);
  background:rgba(11,12,16,.86);backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);position:sticky;top:0;z-index:50}
.header-inner{max-width:var(--shell);margin:0 auto;padding:18px 28px;
  display:flex;align-items:center;gap:36px}
.brand{font-size:21px;line-height:1;white-space:nowrap;color:var(--paper)}
nav.primary{display:flex;gap:26px;margin-left:auto;font-size:13.5px;
  font-weight:500;align-items:center}
nav.primary a{color:var(--ash);padding-bottom:2px;border-bottom:2px solid transparent;
  transition:color .15s}
nav.primary a:hover{color:var(--paper)}
nav.primary a.active{color:var(--paper);border-bottom-color:var(--accent)}
nav.primary a.cta{color:#fff;background:var(--accent-deep);border:none;
  padding:8px 16px;border-radius:3px;font-weight:600}
nav.primary a.cta:hover{background:var(--accent)}

/* ---------- type ---------- */
.label{font-family:var(--mono);font-size:11.5px;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.label.quiet{color:var(--ash)}
h1{font-weight:800;font-size:clamp(30px,3.6vw,42px);line-height:1.12;
  letter-spacing:-.025em;margin-top:18px;color:var(--paper)}
h2{font-weight:700;font-size:clamp(24px,3vw,32px);line-height:1.14;
  letter-spacing:-.018em;margin-top:14px;color:var(--paper)}
h3{font-weight:600;font-size:18px;letter-spacing:-.005em;color:var(--paper)}
p{max-width:var(--measure);color:var(--ash)}
p strong{color:var(--paper);font-weight:600}
.lede{font-size:19.5px;line-height:1.65;margin-top:20px;max-width:56ch;color:#C9CDD6}
.lede .rn,.lede strong{color:var(--paper)}
a.tx{color:var(--accent);font-weight:600;font-size:15px}
a.tx:hover{text-decoration:underline;text-underline-offset:3px}

/* buttons */
.actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px;align-items:center}
a.btn{display:inline-block;background:var(--accent-deep);color:#fff;font-weight:600;
  font-size:15px;padding:12px 22px;border-radius:3px;transition:background .15s}
a.btn:hover{background:var(--accent)}
a.btn.ghost{background:transparent;border:1px solid var(--hairline-2);color:var(--paper)}
a.btn.ghost:hover{border-color:var(--paper);background:transparent}

/* ---------- sections ---------- */
section{padding:84px 0;border-bottom:1px solid var(--hairline)}
section:last-of-type{border-bottom:none}
section[id]{scroll-margin-top:76px} /* anchored sections clear the sticky header */
.section-head{margin-bottom:44px}
.section-head h2:first-child{margin-top:0} /* noun headers with no label above */
.section-head p{margin-top:14px}

/* ---------- hero ---------- */
.hero{padding:76px 0 68px;border-bottom:1px solid var(--hairline);
  position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(720px 420px at 78% 8%,rgba(14,116,144,.12),transparent 62%),
    repeating-linear-gradient(0deg,transparent 0 3px,rgba(242,243,246,.012) 3px 4px)}
.hero .shell{position:relative}
.hero-grid{display:grid;grid-template-columns:1fr 460px;gap:64px;align-items:start}
.hero.compact{padding:72px 0 60px}
.hero.compact::before{background:
  radial-gradient(560px 320px at 82% 0%,rgba(14,116,144,.10),transparent 60%)}

/* ---------- proof line ---------- */
.proofline{padding:20px 0;border-bottom:1px solid var(--hairline);
  background:var(--enclave)}
.proofline .shell{display:flex;flex-wrap:wrap;gap:8px 40px;
  font-family:var(--mono);font-size:12px;letter-spacing:.02em;color:var(--ash)}
.proofline b{color:var(--paper);font-weight:500}

/* ---------- record rows (the editorial spine) ---------- */
.record{border-top:1px solid var(--hairline-2)}
.row{display:grid;grid-template-columns:250px 1fr;gap:36px;padding:32px 0;
  border-bottom:1px solid var(--hairline)}
.record .row:last-child{border-bottom:1px solid var(--hairline-2)}
.row .name{font-weight:600;font-size:18px;color:var(--paper)}
.row .name .idx{font-family:var(--mono);font-size:12px;color:var(--accent);
  display:block;margin-bottom:8px;letter-spacing:.12em}
.row .name .sub{display:block;font-family:var(--mono);font-weight:400;
  font-size:11.5px;color:var(--ash-dim);margin-top:8px;letter-spacing:.08em;
  text-transform:uppercase}
.row .body p{color:var(--ash)}
.row .body p strong{color:var(--paper)}
.row .body p + p{margin-top:12px}
.row .body a.tx{display:inline-block;margin-top:12px}

/* ---------- two columns / product split ---------- */
.cols{display:grid;grid-template-columns:1fr 1fr;gap:1px;
  background:var(--hairline);border:1px solid var(--hairline)}
.cols > div{background:var(--enclave);padding:36px 34px}
.cols .dir{font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent);margin-bottom:14px}
.cols h3{font-size:20px}
.cols p{margin-top:12px;font-size:15.5px}
.cols .tiers{font-family:var(--mono);font-size:11.5px;color:var(--ash-dim);
  margin-top:16px;letter-spacing:.06em}
.cols a.tx{display:inline-block;margin-top:16px}

/* plain columns (no panel) */
.cols.plain{background:none;border:none;gap:56px}
.cols.plain > div{background:none;padding:0}

/* ---------- THE INCINERATOR ---------- */
.incinerator{background:var(--enclave);border:1px solid var(--hairline-2);
  border-radius:6px;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.45)}
.inc-bar{display:flex;align-items:center;gap:10px;padding:12px 16px;
  border-bottom:1px solid var(--hairline);font-family:var(--mono);
  font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ash)}
.inc-bar .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);
  box-shadow:0 0 0 0 rgba(6,182,212,.5);animation:pulse 2.2s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(6,182,212,.45)}
  70%{box-shadow:0 0 0 7px rgba(6,182,212,0)}100%{box-shadow:0 0 0 0 rgba(6,182,212,0)}}
.inc-bar .right{margin-left:auto;color:var(--ash-dim)}
.inc-body{padding:18px 16px 16px}
.inc-label{font-family:var(--mono);font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ash-dim);margin-bottom:8px}
.inc-input{position:relative}
.inc-input textarea{width:100%;min-height:88px;resize:vertical;
  background:var(--void);border:1px solid var(--hairline-2);border-radius:4px;
  color:var(--paper);font-family:var(--mono);font-size:13px;line-height:1.6;
  padding:12px 14px;caret-color:var(--accent)}
.inc-input textarea:focus{outline:none;border-color:var(--accent)}
.inc-input textarea::placeholder{color:var(--ash-dim)}
.inc-input .burnlayer{position:absolute;inset:1px;border-radius:3px;
  background:var(--void);color:var(--paper);font-family:var(--mono);
  font-size:13px;line-height:1.6;padding:12px 14px;white-space:pre-wrap;
  word-break:break-word;overflow:hidden;display:none;pointer-events:none}
.inc-input.burning .burnlayer{display:block}
.inc-input.burning textarea{color:transparent;caret-color:transparent}
.burnlayer .cinder{color:var(--ash-dim)}
.burnlayer .flame{color:var(--ember)}
button.inc-go{margin-top:12px;width:100%;background:var(--accent-deep);color:#fff;
  border:none;border-radius:4px;font-family:var(--sans);font-weight:700;
  font-size:14.5px;letter-spacing:.01em;padding:13px 18px;cursor:pointer;
  transition:background .15s}
button.inc-go:hover{background:var(--accent)}
button.inc-go:disabled{background:#3A3D46;color:var(--ash);cursor:default}
.inc-note{margin-top:10px;font-family:var(--mono);font-size:10.5px;
  line-height:1.7;color:var(--ash-dim);max-width:none}

/* lifecycle */
.inc-stages{list-style:none;margin-top:16px;border-top:1px solid var(--hairline)}
.inc-stages li{display:flex;gap:12px;align-items:baseline;padding:8px 2px;
  border-bottom:1px solid var(--hairline);font-family:var(--mono);font-size:12px;
  color:var(--ash-dim);transition:color .3s}
.inc-stages li .n{color:var(--ash-dim);font-size:11px;width:20px;flex:none}
.inc-stages li .st{margin-left:auto;font-size:10.5px;letter-spacing:.1em;
  text-transform:uppercase}
.inc-stages li.live{color:var(--paper)}
.inc-stages li.live .n{color:var(--accent)}
.inc-stages li.live .st{color:var(--accent)}
.inc-stages li.done{color:var(--ash)}
.inc-stages li.done .st{color:var(--ash)}

/* certificate */
.inc-cert{margin-top:16px;background:var(--void);border:1px solid var(--hairline-2);
  border-radius:4px;padding:16px;font-family:var(--mono);font-size:11.5px;
  line-height:1.9;color:var(--ash);display:none}
.inc-cert.show{display:block;animation:certin .5s ease}
@keyframes certin{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.inc-cert .ct{display:flex;align-items:baseline;gap:10px;padding-bottom:10px;
  margin-bottom:10px;border-bottom:1px solid var(--hairline)}
.inc-cert .ct .rn{font-size:13px;color:var(--paper)}
.inc-cert .ct .ok{margin-left:auto;color:var(--accent);font-size:10.5px;
  letter-spacing:.14em;text-transform:uppercase}
.inc-cert .kv{display:grid;grid-template-columns:150px 1fr;gap:2px 14px}
.inc-cert .kv .k{color:var(--ash-dim)}
.inc-cert .kv .v{color:var(--paper);word-break:break-all}
.inc-cert .kv .v.zero{color:var(--accent)}
.inc-cert .verify{margin-top:10px;padding-top:10px;border-top:1px solid var(--hairline);
  color:var(--ash-dim);font-size:10.5px;line-height:1.7}

/* ---------- REQUEST-A-TRIAL FORM ---------- */
.reqform{background:var(--enclave);border:1px solid var(--hairline-2);
  border-radius:6px;overflow:hidden}
.reqform-bar{padding:12px 16px;border-bottom:1px solid var(--hairline);
  font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--accent)}
.reqform-body{padding:22px 20px 20px}
.reqform-body .field{margin-bottom:14px}
.reqform-body .field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.reqform-body label{display:block;font-family:var(--mono);font-size:11px;
  letter-spacing:.08em;text-transform:uppercase;color:var(--ash-dim);margin-bottom:6px}
.reqform-body input,.reqform-body select{width:100%;background:var(--void);
  border:1px solid var(--hairline-2);border-radius:4px;color:var(--paper);
  font-family:var(--sans);font-size:15px;padding:10px 12px}
.reqform-body input:focus,.reqform-body select:focus{outline:none;border-color:var(--accent)}
.reqform-body select{appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M0 0l5 6 5-6z' fill='%239AA0AC'/></svg>");
  background-repeat:no-repeat;background-position:right 12px center}
.reqform-body select:invalid{color:var(--ash-dim)}
.reqform-submit{width:100%;text-align:center;border:none;cursor:pointer;
  font-family:var(--sans);margin-top:6px}
.reqform-note{margin-top:12px;font-family:var(--mono);font-size:10.5px;
  line-height:1.6;color:var(--ash-dim);max-width:none}

/* ---------- pull quote ---------- */
blockquote.pull{border-left:2px solid var(--accent);padding-left:28px;margin:34px 0;
  max-width:62ch}
blockquote.pull p{font-size:18px;line-height:1.7;color:var(--paper)}
blockquote.pull p + p{margin-top:16px}

/* ---------- download grid ---------- */
.docgrid{display:grid;grid-template-columns:1fr 1fr;gap:1px;
  background:var(--hairline);border:1px solid var(--hairline)}
.docgrid a{display:block;background:var(--enclave);padding:24px 26px;
  transition:background .15s}
.docgrid a:hover{background:var(--enclave-2)}
.docgrid .fmt{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent)}
.docgrid h3{font-size:16px;margin-top:8px;font-weight:600}
.docgrid p{font-size:14px;margin-top:6px;color:var(--ash)}

/* ---------- CTA band ---------- */
.ctaband{background:var(--enclave)}
.ctaband .section-head{margin-bottom:8px}

/* ---------- footer ---------- */
footer.site{border-top:1px solid var(--hairline-2);padding:48px 0 56px;
  background:var(--void)}
.footer-inner{display:flex;flex-wrap:wrap;gap:24px 60px;align-items:baseline}
.footer-brand{font-size:18px;color:var(--paper)}
.footer-links{display:flex;gap:26px;flex-wrap:wrap;font-size:13.5px;
  font-weight:500;color:var(--ash);margin-left:auto}
.footer-links a:hover{color:var(--paper)}
.footer-legal{margin-top:34px;font-size:12px;line-height:1.9;color:var(--ash-dim)}
.footer-legal .rn{color:var(--ash)}

/* ---------- responsive ---------- */
@media(max-width:1100px){
  .header-inner{flex-wrap:wrap;row-gap:10px}
  nav.primary{flex-wrap:wrap;gap:12px 20px}
}
@media(max-width:1000px){
  .hero-grid{grid-template-columns:1fr;gap:44px}
  .hero-grid .incinerator{max-width:560px}
}
@media(max-width:760px){
  .header-inner{flex-wrap:wrap;gap:14px 22px;padding:16px 20px}
  nav.primary{margin-left:0;flex-wrap:wrap;gap:14px 18px}
  .shell{padding:0 20px}
  .row{grid-template-columns:1fr;gap:12px}
  .cols,.docgrid{grid-template-columns:1fr}
  .cols.plain{gap:44px}
  section{padding:60px 0}
  .hero{padding:56px 0 52px}
  .inc-cert .kv{grid-template-columns:1fr;gap:0}
  .inc-cert .kv .k{margin-top:6px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .inc-bar .dot{animation:none}
  .inc-cert.show{animation:none}
  *{transition:none!important}
}
