/* COTNAS UI — shared foundation. Page layouts and application states stay local.
   Opt-in on the HTML element; never loaded into PDF/report templates. */
@font-face{font-family:Cotnas Sans;src:url('/assets/fonts/space-regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Cotnas Sans;src:url('/assets/fonts/space-bold.ttf') format('truetype');font-weight:700;font-display:swap}
@font-face{font-family:Cotnas Mono;src:url('/assets/fonts/plex-mono.ttf') format('truetype');font-weight:400;font-display:swap}
html[data-cotnas-ui]{
 --cotnas-bg:#080f15;--cotnas-surface:#101c25;--cotnas-surface-raised:#16252f;
 --cotnas-text:#e9f2f5;--cotnas-muted:#9eb3be;--cotnas-accent:#64edcd;
 --cotnas-line:#2a424e;--cotnas-radius:10px;
 --cotnas-font:'Cotnas Sans',system-ui,sans-serif;
 --cotnas-mono:'Cotnas Mono',Consolas,monospace;
 --cotnas-title:clamp(1.5rem,2.5vw,2.125rem);
 --cotnas-section:clamp(1.25rem,2vw,1.625rem);
 --bg:var(--cotnas-bg);--text:var(--cotnas-text);--muted:var(--cotnas-muted);
 --accent:var(--cotnas-accent);--cp-accent:var(--cotnas-accent);
 color-scheme:dark;
}
@media screen {
 html[data-cotnas-ui] body{font-family:var(--cotnas-font);background:radial-gradient(ellipse at 12% 0%,#12323966,transparent 50%),var(--cotnas-bg);color:var(--cotnas-text);-webkit-font-smoothing:antialiased}
 html[data-cotnas-ui] body :where(.terminal-wrap,.page-shell,.dashboard-shell,.kp-shell,.soc-layout){--cotnas-title:clamp(1.375rem,2vw,1.75rem)}
 html[data-cotnas-ui] body :where(button,input,select,textarea){font-family:var(--cotnas-font)}
 html[data-cotnas-ui] body :where(pre,code,kbd,samp,.mono,.terminal-body,.terminal-title,.terminal-line){font-family:var(--cotnas-mono)}
 html[data-cotnas-ui] body :where(a,button,input,select,textarea,summary):focus-visible{outline:2px solid var(--cotnas-accent);outline-offset:4px}
 html[data-cotnas-ui] ::selection{background:#296d62;color:#fff}
 /* One heading scale: intentionally more specific than historical page rules. */
 html[data-cotnas-ui] body h1{
  font-family:var(--cotnas-font);font-size:var(--cotnas-title);font-weight:700;
  line-height:1.22;letter-spacing:-.025em;text-transform:none;text-shadow:none;
  color:var(--cotnas-text);text-wrap:balance;overflow-wrap:anywhere;
  margin-block:12px 20px;max-width:100%;
 }
 html[data-cotnas-ui] body h2{font-family:var(--cotnas-font);font-size:var(--cotnas-section);font-weight:700;line-height:1.3;letter-spacing:-.018em;text-shadow:none;text-wrap:balance}
 html[data-cotnas-ui] body h3{font-family:var(--cotnas-font);font-size:1.125rem;line-height:1.4;letter-spacing:-.01em;text-shadow:none}
 html[data-cotnas-ui] body :where(.article-card,.card,.panel,.content-card) h2{font-size:1.25rem}
 html[data-cotnas-ui] body :where(.section-title,.page-title,.hero-title){font-family:var(--cotnas-font);text-shadow:none}
 html[data-cotnas-ui] body .section-title:where(h2){font-size:var(--cotnas-section);line-height:1.3}
 html[data-cotnas-ui] body .cotnas-title-motion{animation:cotnas-title-arrive .7s cubic-bezier(.2,.7,.2,1) both}
 html[data-cotnas-ui] body h1.cotnas-title-motion{border-inline-start:2px solid var(--cotnas-accent);padding-inline-start:16px;animation:cotnas-title-arrive .7s cubic-bezier(.2,.7,.2,1) both,cotnas-title-signal 1.8s ease-out 1}
 html[data-cotnas-ui] body :where(.btn,.button,.btn-nav,.cp-button,.contact-submit){border-radius:7px;font-family:var(--cotnas-font);letter-spacing:.015em}
 html[data-cotnas-ui] body :where(.btn,.button,.btn-nav,.cp-button):not(:disabled):hover{filter:brightness(1.08)}
 /* Common public page surfaces; no changes to map tiles, canvases or status colours. */
 html[data-cotnas-ui] body :where(.main-nav,.topbar,.articles-header,.cp-header){background:#0a141beb;border-color:var(--cotnas-line)}
 html[data-cotnas-ui] body :where(.legal-header,.hero-card,.cp-panel,.contact-public-card){background:var(--cotnas-surface);border-color:var(--cotnas-line);border-radius:var(--cotnas-radius)}
 html[data-cotnas-ui] body :where(.legal-card,.cp-card,.article-card){border-color:var(--cotnas-line);border-radius:var(--cotnas-radius)}
 html[data-cotnas-ui] body :where(.cp-eyebrow,.cp-label,.eyebrow){font-family:var(--cotnas-mono);font-size:.7rem;letter-spacing:.1em;color:var(--cotnas-accent)}
 html[data-cotnas-ui] body :where(.cp-hero,.article-hero){padding-block:48px 40px}
 html[data-cotnas-ui] body .hero:where(section){padding-block:42px}
 html[data-cotnas-ui] body :where(.cp-lead,.hero>p,.hero-grid>div>p){font-size:1rem;line-height:1.75}
 html[data-cotnas-ui] body :where(.legal-header,.cp-hero,.article-hero) h1{max-width:850px}
}
@keyframes cotnas-title-arrive{from{opacity:.65;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes cotnas-title-signal{0%{border-color:transparent}35%{border-color:#d5fff3;box-shadow:-8px 0 18px -13px #64edcd}100%{border-color:var(--cotnas-accent);box-shadow:none}}
@media(prefers-reduced-motion:reduce){html[data-cotnas-ui] body .cotnas-title-motion,html[data-cotnas-ui] body h1.cotnas-title-motion{animation:none}}
@media print{html[data-cotnas-ui] body .cotnas-title-motion{animation:none!important;opacity:1!important;transform:none!important}}

/* COTNAS / SECURITY SYSTEM. Shared identity; tool layouts and role state remain page-owned. */
html[data-cotnas-ui]{--bg-primary:#050807;--bg-secondary:#080d0b;--surface:#0b1210;--border:#233e31;--text-primary:#e8fff2;--text-secondary:#8da99b;--accent:#00ff88;--accent-glow:#00ff8820;--cotnas-bg:var(--bg-primary);--cotnas-surface:var(--surface);--cotnas-surface-raised:#111e17;--cotnas-text:var(--text-primary);--cotnas-muted:var(--text-secondary);--cotnas-accent:var(--accent);--cotnas-line:var(--border);--cotnas-radius:6px}
@media screen{
 html[data-cotnas-ui] body{background:radial-gradient(ellipse at 0 0,#0e26186b,transparent 42%),var(--bg-primary)}
 html[data-cotnas-ui] body :where(.main-nav,.topbar,.articles-header,.cp-header){background:#080d0bf2;border-color:var(--border)}
 html[data-cotnas-ui] body :where(.cp-hero,.article-hero,.legal-header){background:linear-gradient(120deg,#0b1911,#070c09);border-color:var(--border)}
 html[data-cotnas-ui] body :where(.cp-button,.contact-submit){background:var(--accent);color:#032313;border:1px solid var(--accent)}
 html[data-cotnas-ui] body .cp-button-secondary{background:transparent;color:var(--text-primary)}
 html[data-cotnas-ui] body :where(.article-card,.cp-card,.legal-card,.legal-header,.hero-card){border-radius:6px;background-color:var(--surface);box-shadow:none}
 html[data-cotnas-ui] body :where(.article-card,.cp-card){transition:transform .25s,border-color .25s}
 html[data-cotnas-ui] body :where(.article-card,.cp-card):hover{border-color:#00ff8880;transform:translateY(-3px)}
 html[data-cotnas-ui] body .article-card h2{font-size:1.2rem;line-height:1.4}
 html[data-cotnas-ui] body .article-card img{aspect-ratio:16/9;object-fit:cover;filter:saturate(.65)}
 html[data-cotnas-ui] body :where(.contact-field,.field,.form-group) label{font-family:var(--cotnas-mono);font-size:.8125rem;letter-spacing:.04em}
 html[data-cotnas-ui] body :where(.contact-field,.field,.form-group):focus-within label{color:var(--accent)}
 html[data-cotnas-ui] body :where(input,textarea,select):focus{border-color:var(--accent)}
 html[data-cotnas-ui] body :where(.contact-field,.field,.form-group) input:focus-visible{outline-offset:2px}
 .scramble-active{position:relative}
 .scramble-active>.scramble-real{opacity:0}
 .scramble-visual{position:absolute;inset:0;box-sizing:border-box;pointer-events:none;font:inherit;letter-spacing:inherit;line-height:inherit;text-transform:inherit;color:var(--accent);white-space:normal;overflow-wrap:inherit}
 .scramble-real{font:inherit;color:inherit}
}
@media(prefers-reduced-motion:reduce){.scramble-visual{display:none}.scramble-active>.scramble-real{opacity:1}}
@media print{.scramble-visual{display:none}.scramble-active>.scramble-real{opacity:1}}
/* Cross-document transitions are optional native enhancement, never JS navigation interception. */
@view-transition{navigation:auto}
::view-transition-old(root){animation:cotnas-page-out .12s ease both}
::view-transition-new(root){animation:cotnas-page-in .16s ease both}
@keyframes cotnas-page-out{to{opacity:.75}}
@keyframes cotnas-page-in{from{opacity:.8;transform:translateY(4px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}}
