/* INFORM powered by PULSE — V2 evidence-led visual system
   Institutional, accessible, WCAG 2.2 AA target. */

:root{
  --ink:#0b1220; --ink-2:#111a2d; --ink-3:#172238;
  --paper:#f7f8fb; --line:#243046;
  --text:#e8eef7; --text-2:#aebbd2; --text-3:#7c8aa6;
  --accent:#39c2c9; --accent-2:#7ad4d9;
  --warn:#e2a93a; --crit:#d96a6a; --ok:#5dbf8a;
  --evidence-obs:#5dbf8a; --evidence-ext:#7ad4d9; --evidence-inf:#e2a93a;
  --evidence-tgt:#a78bfa; --evidence-com:#ec96d2; --evidence-unk:#9aa7be;
  --maxw:1180px; --r:10px;
  --shadow:0 1px 0 rgba(255,255,255,.04), 0 8px 24px rgba(0,0,0,.35);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body.ip-body{
  margin:0; background:var(--ink); color:var(--text);
  font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
.ip-container{max-width:var(--maxw); margin:0 auto; padding:0 24px}
a{color:var(--accent-2)}
a:focus-visible, button:focus-visible, .ip-cta:focus-visible{
  outline:3px solid #ffd166; outline-offset:2px;
}
.ip-skip{
  position:absolute; left:-9999px; top:0; padding:.75rem 1rem;
  background:#ffd166; color:#000; font-weight:700;
}
.ip-skip:focus{left:0; z-index:1000}

/* Topbar */
.ip-topbar{
  position:sticky; top:0; z-index:50;
  background:rgba(11,18,32,.88); backdrop-filter:saturate(140%) blur(8px);
  border-bottom:1px solid var(--line);
}
.ip-topbar__inner{display:flex; gap:1rem; align-items:center; min-height:64px}
.ip-brand{display:flex; flex-direction:column; line-height:1.1; text-decoration:none; color:#fff}
.ip-brand__mark{font-weight:700; letter-spacing:.04em}
.ip-brand__sub{color:var(--text-3); font-size:12px}
.ip-nav{display:flex; gap:.5rem 1rem; flex-wrap:wrap; margin-left:auto}
.ip-nav a{color:var(--text-2); text-decoration:none; padding:.5rem .25rem; font-size:14.5px}
.ip-nav a:hover{color:#fff}
.ip-cta{
  display:inline-block; padding:.6rem 1rem; border-radius:var(--r);
  background:var(--accent); color:#062528; font-weight:700; text-decoration:none;
}
.ip-cta--ghost{
  background:transparent; color:var(--accent-2);
  border:1px solid var(--accent);
}
.ip-cta--lg{padding:.85rem 1.25rem}
.ip-cta--block{display:block; text-align:center}
@media (max-width:760px){
  .ip-nav{display:none}
  .ip-cta{padding:.45rem .7rem; font-size:14px}
}

/* Status band */
.ip-statusband{
  background:linear-gradient(180deg,#2a1f08, #1d1707);
  border-bottom:1px solid #594120;
  color:#ffd9a0; font-size:14px;
}
.ip-statusband .ip-container{padding:.6rem 24px}
.ip-statusband em{font-style:normal; color:#ff8a8a; font-weight:700}
.ip-statusband a{color:#ffd9a0; text-decoration:underline}

/* Main */
.ip-main{padding:0 0 4rem 0}

/* Hero */
.ip-hero{
  padding:3.5rem 0 2rem;
  background:radial-gradient(1200px 600px at 10% -10%, rgba(57,194,201,.18), transparent 60%),
             radial-gradient(900px 500px at 90% 0%, rgba(167,139,250,.12), transparent 60%),
             linear-gradient(180deg, #0b1220 0%, #0e1830 100%);
  border-bottom:1px solid var(--line);
}
.ip-hero__eyebrow{color:var(--accent-2); letter-spacing:.16em; text-transform:uppercase; font-size:12.5px; font-weight:700}
.ip-hero h1{font-size:clamp(28px,4vw,46px); line-height:1.15; margin:.5rem 0 1rem; letter-spacing:-.01em}
.ip-hero p.lead{font-size:clamp(16px,1.6vw,18.5px); color:var(--text-2); max-width:62ch}
.ip-hero__cta{display:flex; flex-wrap:wrap; gap:.75rem; margin-top:1.5rem}

/* Sections */
section.ip-sec{padding:3rem 0; border-top:1px solid var(--line)}
section.ip-sec h2{font-size:clamp(22px,2.4vw,30px); margin:.2rem 0 1rem; letter-spacing:-.01em}
section.ip-sec .ip-sub{color:var(--text-2); max-width:68ch}
.ip-h6{font-size:13px; letter-spacing:.12em; text-transform:uppercase; color:var(--text-3); margin:0 0 .5rem}

/* Cards */
.ip-grid{display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); margin-top:1.25rem}
.ip-card{
  background:var(--ink-2); border:1px solid var(--line); border-radius:var(--r);
  padding:1.25rem 1.25rem; box-shadow:var(--shadow);
}
.ip-card h3{margin:.25rem 0 .5rem; font-size:18px}
.ip-card p{color:var(--text-2); margin:.25rem 0}
.ip-card ul{color:var(--text-2); margin:.5rem 0 0 1rem}
.ip-card .ip-meta{color:var(--text-3); font-size:13px; margin-top:.5rem}

/* Evidence badges */
.ip-badge{
  display:inline-block; padding:.18rem .55rem; border-radius:999px;
  font-size:12px; font-weight:700; letter-spacing:.03em;
  border:1px solid transparent; line-height:1.5;
}
.ip-badge--obs{background:rgba(93,191,138,.12); color:var(--evidence-obs); border-color:rgba(93,191,138,.4)}
.ip-badge--ext{background:rgba(122,212,217,.12); color:var(--evidence-ext); border-color:rgba(122,212,217,.4)}
.ip-badge--inf{background:rgba(226,169,58,.14); color:var(--evidence-inf); border-color:rgba(226,169,58,.45)}
.ip-badge--tgt{background:rgba(167,139,250,.14); color:var(--evidence-tgt); border-color:rgba(167,139,250,.45)}
.ip-badge--com{background:rgba(236,150,210,.14); color:var(--evidence-com); border-color:rgba(236,150,210,.45)}
.ip-badge--unk{background:rgba(154,167,190,.14); color:var(--evidence-unk); border-color:rgba(154,167,190,.45)}
.ip-badge--hold{background:rgba(217,106,106,.14); color:var(--crit); border-color:rgba(217,106,106,.45)}

/* Tables */
.ip-table{width:100%; border-collapse:collapse; margin-top:1rem; font-size:14.5px}
.ip-table th, .ip-table td{padding:.65rem .75rem; border-bottom:1px solid var(--line); text-align:left; vertical-align:top}
.ip-table th{color:var(--text-3); font-weight:600; letter-spacing:.04em; text-transform:uppercase; font-size:12px}
.ip-table tr:hover td{background:rgba(255,255,255,.02)}

/* Disclaimer */
.ip-disclaimer{
  background:#0a1322; border-top:1px solid var(--line); padding:2rem 0; color:var(--text-2);
}
.ip-disclaimer p{max-width:88ch}
.ip-mute{color:var(--text-3); font-size:13.5px}

/* Footer */
.ip-footer{background:#070d1a; border-top:1px solid var(--line); padding:2.5rem 0 1.5rem; color:var(--text-2)}
.ip-footer__grid{display:grid; gap:1.25rem; grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.ip-footer .ip-brand-line{margin:0}
.ip-list{list-style:none; padding:0; margin:.25rem 0 0; line-height:2}
.ip-list a{color:var(--text-2); text-decoration:none}
.ip-list a:hover{color:#fff; text-decoration:underline}
.ip-footer__legal{margin-top:1.5rem; padding-top:1rem; border-top:1px dashed #1a2540}

/* Demonstration watermark */
.ip-demo-watermark{position:relative; overflow:hidden}
.ip-demo-watermark::after{
  content:"DEMONSTRATION · ILLUSTRATIVE DATA ONLY";
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-weight:800; letter-spacing:.2em; color:rgba(226,169,58,.18);
  font-size:clamp(18px,3vw,42px); transform:rotate(-12deg); pointer-events:none;
  text-align:center; white-space:nowrap;
}

/* Forms */
.ip-form .ip-row{display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.ip-field{display:flex; flex-direction:column; gap:.35rem; margin:.75rem 0}
.ip-field label{font-size:14px; color:var(--text-2)}
.ip-field input, .ip-field select, .ip-field textarea{
  padding:.7rem .75rem; background:#0e1730; color:var(--text);
  border:1px solid var(--line); border-radius:8px; font:inherit;
}
.ip-field textarea{min-height:140px; resize:vertical}
.ip-field .ip-help{font-size:12.5px; color:var(--text-3)}

/* Util */
.ip-pill{display:inline-flex; align-items:center; gap:.45rem; padding:.2rem .55rem; border-radius:999px; background:#162039; color:var(--text-2); font-size:12.5px}
.ip-row-3{display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.ip-keyline{border:1px solid var(--line); border-radius:var(--r); padding:1rem 1.25rem; background:#0d1426}
.ip-eyebrow{color:var(--accent-2); text-transform:uppercase; font-size:12px; font-weight:700; letter-spacing:.16em}

/* Reduced motion */
@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; }
}
