@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@500;600;700;800&family=Inter:wght@400;500;600;700&display=swap');

:root {
  --bg-a: #f5fafd;
  --bg-b: #eaf1fb;
  --panel: rgba(255, 255, 255, 0.86);
  --line: #dbe5f1;
  --ink: #16233b;
  --muted: #62718a;
  --accent: #0fb2c0;
  --accent-2: #5b6bf0;
  --accent-soft: #e4f8fa;
  --night: #050b14;
  --night-2: #0b1a2a;
  --teal-glow: #22e0e6;
  --ok: #159a63;
  --caution: #b98100;
  --warning: #d0620c;
  --alarm: #c8324b;
  --radius: 20px;
  --shadow: 0 14px 34px -20px #16233b40;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 80px; }

body {
  margin: 0;
  font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  color: var(--ink);
  background:
    radial-gradient(1200px 520px at 15% -5%, #d6f3f7 0%, transparent 60%),
    radial-gradient(900px 520px at 100% 0%, #e6e6ff 0%, transparent 55%),
    linear-gradient(180deg, var(--bg-a), var(--bg-b));
  background-attachment: fixed;
  min-height: 100vh;
  line-height: 1.55;
}

h1, h2, h3, h4, .display { font-family: 'Manrope', 'Inter', sans-serif; letter-spacing: -0.2px; }
a { color: var(--accent-2); }
img { max-width: 100%; display: block; }
code { background: #eef3fa; border-radius: 6px; padding: 1px 6px; font-size: 0.9em; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

.wrap { max-width: 1320px; margin: 0 auto; padding: 0 24px; }

/* ---------- Navigation ---------- */
.nav {
  position: sticky; top: 0; z-index: 50;
  background: rgba(5, 11, 20, 0.88);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid #ffffff14;
}
.nav .wrap { display: flex; align-items: center; justify-content: space-between; gap: 16px; height: 64px; }
.brand { display: flex; align-items: center; gap: 10px; text-decoration: none; color: #fff; }
.brand img {
  width: 34px; height: 32px; object-fit: contain;
  filter: drop-shadow(0 0 10px #22e0e659);
}
.brand span { font-family: 'Manrope', sans-serif; font-weight: 700; font-size: 1.15rem; letter-spacing: 0.5px; }
.brand b { color: var(--teal-glow); font-weight: 700; }
.nav-links { display: flex; align-items: center; gap: 4px; }
.nav-links a {
  color: #c9d6e6; text-decoration: none; font-size: 0.88rem; font-weight: 600;
  padding: 8px 12px; border-radius: 10px;
}
.nav-links a:hover, .nav-links a.active { color: #fff; background: #ffffff12; }
.nav-links a.cta { background: linear-gradient(135deg, var(--accent), var(--accent-2)); color: #fff; margin-left: 6px; }
.nav-toggle { display: none; background: none; border: 1px solid #ffffff30; color: #fff; border-radius: 10px; padding: 8px 12px; font-weight: 700; }

/* ---------- Hero ---------- */
.hero {
  background:
    radial-gradient(700px 380px at 75% 40%, #0fb2c033 0%, transparent 70%),
    radial-gradient(600px 300px at 10% 100%, #5b6bf022 0%, transparent 70%),
    var(--night);
  color: #e8f1fa;
  padding: 56px 0 72px;
  overflow: hidden;
}
.hero .wrap { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 40px; align-items: center; }
.eyebrow { text-transform: uppercase; letter-spacing: 0.32em; font-size: 0.78rem; color: var(--teal-glow); font-weight: 700; }
.hero h1 { font-size: clamp(2.3rem, 5vw, 3.8rem); margin: 10px 0 6px; line-height: 1.05; font-weight: 800; }
.hero h1 .glow { color: var(--teal-glow); text-shadow: 0 0 28px #22e0e655; }
.hero .subtitle { font-size: 1.2rem; color: #cfe0ef; margin: 0 0 16px; font-weight: 600; }
.hero p.lead { color: #aebdd0; max-width: 620px; margin: 0 0 22px; }
.hero-logo { position: relative; }

/* ---------- Hero logo: the "optical chamber" ---------- */
.logo-stage {
  position: relative;
  aspect-ratio: 1 / 1;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding-bottom: 76px;   /* keeps the lockup clear of the docked live widget */
  perspective: 900px;
  --rx: 0deg; --ry: 0deg;
}
/* soft teal bloom behind everything */
.logo-stage::before {
  content: ''; position: absolute; inset: 8%; border-radius: 50%;
  background: radial-gradient(circle, #0fb2c045 0%, #5b6bf01f 45%, transparent 72%);
  filter: blur(14px);
}
/* faint measurement grid, so the mark reads as "on an instrument" */
.logo-stage::after {
  content: ''; position: absolute; inset: 12%; border-radius: 50%;
  background:
    repeating-linear-gradient(0deg, #ffffff0c 0 1px, transparent 1px 34px),
    repeating-linear-gradient(90deg, #ffffff0c 0 1px, transparent 1px 34px);
  -webkit-mask: radial-gradient(circle, #000 55%, transparent 78%);
  mask: radial-gradient(circle, #000 55%, transparent 78%);
}
.logo-particles {
  position: absolute; inset: 0; width: 100%; height: 100%;
  border-radius: 50%; pointer-events: none;
}
/* two counter-rotating arc rings */
.logo-ring {
  position: absolute; inset: 7%; border-radius: 50%;
  background: conic-gradient(from 0deg, transparent 0 58%, var(--teal-glow) 80%, var(--accent-2) 92%, transparent 100%);
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 2px), #000 calc(100% - 2px));
  mask: radial-gradient(farthest-side, transparent calc(100% - 2px), #000 calc(100% - 2px));
  opacity: 0.6;
  animation: logo-spin 18s linear infinite;
}
.logo-ring.r2 {
  inset: -1%; opacity: 0.28;
  animation-duration: 30s; animation-direction: reverse;
}
.logo-ring.r3 {
  inset: 18%; opacity: 0.5;
  background: none;
  border: 1px dashed #ffffff26;
  -webkit-mask: none; mask: none;
  animation-duration: 46s;
}
@keyframes logo-spin { to { transform: rotate(360deg); } }

.logo-core {
  position: relative; width: 58%;
  transform: rotateX(var(--rx)) rotateY(var(--ry));
  transform-style: preserve-3d;
  transition: transform .35s ease-out;
  animation: logo-float 7s ease-in-out infinite;
}
@keyframes logo-float { 0%, 100% { translate: 0 -1.2%; } 50% { translate: 0 1.2%; } }
.logo-core img {
  width: 100%; height: auto;
  filter: drop-shadow(0 18px 42px #02131a) drop-shadow(0 0 30px #22e0e64d);
}
/* light sweep that travels only through the glyph (masked by its own alpha) */
.logo-scan {
  position: absolute; inset: 0; overflow: hidden; pointer-events: none;
  mix-blend-mode: screen;
  -webkit-mask: url(../img/logo-mark.png) center / contain no-repeat;
  mask: url(../img/logo-mark.png) center / contain no-repeat;
}
.logo-scan::before {
  content: ''; position: absolute; left: -10%; right: -10%; height: 34%;
  background: linear-gradient(180deg, transparent, #d6fbff 52%, transparent);
  animation: logo-scan 6s cubic-bezier(.45, 0, .55, 1) infinite;
}
@keyframes logo-scan {
  0%   { transform: translateY(-120%); opacity: 0; }
  18%  { opacity: .9; }
  82%  { opacity: .9; }
  100% { transform: translateY(320%); opacity: 0; }
}
.logo-core picture { display: block; }
.logo-stage > picture { display: block; width: 62%; margin-top: 4px; }
.logo-word {
  width: 100%; height: auto;
  filter: drop-shadow(0 0 22px #22e0e638);
}
.hero-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 22px; }
.hero-badges { display: flex; flex-wrap: wrap; gap: 8px; }
.hero-badges span {
  border: 1px solid #ffffff22; background: #ffffff0d; color: #d4e2f1;
  border-radius: 999px; padding: 6px 12px; font-size: 0.8rem; font-weight: 600;
}
.live-mini {
  position: absolute; left: -28px; bottom: -24px; width: 250px;
  background: rgba(255,255,255,0.92); color: var(--ink);
  border-radius: 16px; padding: 12px 14px; border: 1px solid #ffffff;
  box-shadow: 0 20px 44px -18px #000a;
}
.live-mini .k { font-size: 0.7rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.5px; display: flex; justify-content: space-between; }
.live-mini .v { font-family: 'Manrope', sans-serif; font-weight: 800; font-size: 1.35rem; }
.live-mini canvas { width: 100%; height: 42px; display: block; margin-top: 4px; }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  border: none; border-radius: 12px; padding: 11px 18px; cursor: pointer;
  font: 700 0.92rem 'Inter', sans-serif; text-decoration: none;
  background: linear-gradient(135deg, var(--accent), var(--accent-2)); color: #fff;
  box-shadow: 0 10px 22px -10px #0fb2c0aa; transition: transform .12s ease, box-shadow .12s ease;
}
.btn:hover { transform: translateY(-1px); box-shadow: 0 14px 26px -10px #0fb2c0cc; }
.btn.ghost { background: #fff; color: var(--ink); border: 1px solid var(--line); box-shadow: none; }
.btn.ghost-dark { background: #ffffff10; color: #fff; border: 1px solid #ffffff30; box-shadow: none; }
.btn.small { padding: 7px 12px; font-size: 0.8rem; border-radius: 10px; }
.btn.danger { background: linear-gradient(135deg, #e0526a, var(--alarm)); box-shadow: 0 10px 22px -10px #c8324baa; }
.btn:disabled { opacity: .55; cursor: not-allowed; transform: none; }

/* ---------- Sections ---------- */
section.block { padding: 64px 0 8px; }
.section-head { max-width: 780px; margin-bottom: 26px; }
.section-head h2 { font-size: clamp(1.6rem, 3vw, 2.2rem); margin: 6px 0 8px; }
.section-head p { color: var(--muted); margin: 0; }
.kicker { text-transform: uppercase; letter-spacing: 0.24em; font-size: 0.74rem; color: var(--accent); font-weight: 800; }

.grid-12 { display: grid; grid-template-columns: repeat(12, 1fr); gap: 16px; }
.col-3 { grid-column: span 3; } .col-4 { grid-column: span 4; } .col-5 { grid-column: span 5; }
.col-6 { grid-column: span 6; } .col-7 { grid-column: span 7; } .col-8 { grid-column: span 8; }
.col-12 { grid-column: span 12; }

.panel {
  background: var(--panel); backdrop-filter: blur(6px);
  border: 1px solid var(--line); border-radius: var(--radius);
  padding: 22px; box-shadow: var(--shadow);
}
.panel h3 { margin: 0 0 4px; font-size: 1.08rem; }
.panel .sub { color: var(--muted); font-size: 0.84rem; margin-bottom: 14px; }
.panel p { color: #3c4a63; }
.card { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 16px 18px; }

.statement {
  text-align: center; padding: 40px 24px; border-radius: var(--radius);
  background: linear-gradient(135deg, #ffffffcc, #eefafbcc); border: 1px solid var(--line);
}
.statement h2 { font-size: clamp(1.3rem, 2.6vw, 1.9rem); letter-spacing: 0.08em; text-transform: uppercase; margin: 0 0 14px; line-height: 1.35; }
.statement h2 span { color: var(--accent); }
.statement p { max-width: 820px; margin: 0 auto 10px; color: #3c4a63; }
.motto { display: inline-block; margin-top: 10px; letter-spacing: 0.3em; text-transform: uppercase; font-weight: 800; color: var(--accent); font-size: 0.9rem; }

.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip {
  background: #fff; border: 1px solid var(--line); border-radius: 999px;
  padding: 7px 14px; font-size: 0.8rem; font-weight: 700; color: #40506e;
  box-shadow: 0 4px 14px -8px #16233b22;
}
.chip.plus { border: none; background: none; box-shadow: none; color: var(--accent); padding: 7px 0; }

/* Flow */
.flow { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; counter-reset: step; }
.flow .step { position: relative; background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 16px; }
.flow .step .n { font-family: 'Manrope'; font-weight: 800; color: var(--accent); font-size: 0.85rem; letter-spacing: 0.1em; }
.flow .step h4 { margin: 4px 0 6px; font-size: 0.98rem; }
.flow .step p { margin: 0; font-size: 0.84rem; color: var(--muted); }
.flow .step:not(:last-child)::after {
  content: '→'; position: absolute; right: -12px; top: 50%; transform: translate(50%, -50%);
  color: var(--accent); font-weight: 800; z-index: 2;
}
.pipeline { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-weight: 700; font-size: 0.84rem; }
.pipeline span.node { background: var(--accent-soft); color: #0a6f79; border-radius: 10px; padding: 7px 11px; }
.pipeline span.arrow { color: var(--muted); }

/* Status */
.status-pill { display: inline-flex; align-items: center; gap: 6px; padding: 4px 11px; border-radius: 999px; font-size: 0.78rem; font-weight: 800; border: 1px solid transparent; white-space: nowrap; }
.status-pill::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.lvl-OK { color: var(--ok); background: #e7f7f0; border-color: #bfe7d3; }
.lvl-Caution { color: var(--caution); background: #fff6dc; border-color: #f2dc9a; }
.lvl-Warning { color: var(--warning); background: #fff0e4; border-color: #f6cfae; }
.lvl-Alarm { color: var(--alarm); background: #fdeaee; border-color: #f6c3ce; }
.txt-OK { color: var(--ok); } .txt-Caution { color: var(--caution); } .txt-Warning { color: var(--warning); } .txt-Alarm { color: var(--alarm); }

/* KPI */
.kpi-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.kpi { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 14px 16px; min-height: 104px; }
.kpi .k { font-size: 0.72rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.5px; font-weight: 700; }
.kpi .v { font-family: 'Manrope'; font-weight: 800; font-size: 1.55rem; margin-top: 4px; line-height: 1.2; }
.kpi .v.small { font-size: 0.98rem; }
.kpi .trend { font-size: 0.78rem; color: var(--muted); margin-top: 4px; }
.kpi.flash { animation: flash 0.9s ease; }
@keyframes flash { 0% { box-shadow: 0 0 0 0 #c8324b66; } 100% { box-shadow: 0 0 0 14px #c8324b00; } }

/* Tables */
table { width: 100%; border-collapse: collapse; font-size: 0.86rem; }
th, td { text-align: left; padding: 9px 8px; border-bottom: 1px solid var(--line); vertical-align: top; }
th { color: var(--muted); font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.5px; font-weight: 800; }
.table-scroll { overflow-x: auto; }
.num { font-variant-numeric: tabular-nums; }

/* Gases */
.gas-card { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 18px; display: flex; flex-direction: column; gap: 8px; }
.gas-card .formula { font-family: 'Manrope'; font-weight: 800; font-size: 1.8rem; color: var(--accent-2); line-height: 1; }
.gas-card h4 { margin: 0; font-size: 1rem; }
.gas-card dl { margin: 0; font-size: 0.84rem; }
.gas-card dt { font-weight: 800; color: var(--muted); font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.5px; margin-top: 8px; }
.gas-card dd { margin: 2px 0 0; color: #3c4a63; }
.gas-card .btn { margin-top: auto; align-self: flex-start; }
.gases-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }

/* QR */
.qr-box { display: grid; grid-template-columns: auto 1fr; gap: 20px; align-items: center; }
.qr { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 10px; width: 180px; height: 180px; }
.qr svg { width: 100%; height: 100%; display: block; }
.sensor-id { font-family: 'SF Mono', Menlo, Consolas, monospace; font-weight: 700; background: var(--night); color: var(--teal-glow); padding: 6px 12px; border-radius: 10px; display: inline-block; letter-spacing: 0.05em; }
ul.ticks { list-style: none; padding: 0; margin: 10px 0 0; display: grid; gap: 6px; }
ul.ticks li { padding-left: 24px; position: relative; font-size: 0.9rem; color: #3c4a63; }
ul.ticks li::before { content: '✓'; position: absolute; left: 0; color: var(--accent); font-weight: 900; }

/* Stage / honesty */
.stage-banner {
  background: linear-gradient(135deg, var(--night), var(--night-2)); color: #e8f1fa;
  border-radius: var(--radius); padding: 28px; border: 1px solid #ffffff14;
}
.stage-banner h3 { font-size: 1.4rem; letter-spacing: 0.06em; text-transform: uppercase; margin: 0 0 10px; }
.stage-banner p { color: #b8c7d8; }
.stage-banner .pipeline span.node { background: #22e0e61c; color: var(--teal-glow); }
.honest { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.honest div { border: 1px solid var(--line); border-radius: 14px; padding: 12px 14px; background: #fff; font-size: 0.86rem; }
.honest .no { color: var(--alarm); font-weight: 800; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.5px; }
.honest .yes { color: var(--ok); font-weight: 800; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.5px; }

/* Team */
/* auto-fit, because the number of members can change from the content sheet -
   a hard-coded column count would leave an orphan card on the last row. */
.team-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(198px, 1fr)); gap: 14px; }
.member { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 18px; }
.avatar {
  width: 54px; height: 54px; border-radius: 16px; display: grid; place-items: center;
  font: 800 1.1rem 'Manrope'; color: #fff; margin-bottom: 10px;
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
}
.member h4 { margin: 0 0 8px; }
.member .field { font-size: 0.82rem; color: var(--muted); margin-top: 4px; }
.member .field b { color: var(--ink); font-weight: 700; }
.avatar.photo { object-fit: cover; }
.todo { color: #9a6b00; background: #fff6dc; border-radius: 6px; padding: 0 5px; font-style: normal; }

/* ---------- Team-supplied visuals ---------- */
.visuals-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.visual {
  margin: 0; background: #fff; border: 1px solid var(--line);
  border-radius: 18px; overflow: hidden; box-shadow: var(--shadow);
}
.visual img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.visual figcaption { padding: 14px 16px; font-size: 0.85rem; color: var(--muted); }
.visual figcaption b { display: block; color: var(--ink); font-size: 0.95rem; margin-bottom: 2px; }

/* ---------- Laboratory research roadmap ---------- */
.roadmap { list-style: none; margin: 0; padding: 0 0 0 26px; position: relative; }
.roadmap::before {
  content: ''; position: absolute; left: 7px; top: 8px; bottom: 8px; width: 2px;
  background: linear-gradient(180deg, var(--accent), var(--accent-2) 55%, var(--line));
}
.stage-item { position: relative; padding: 0 0 22px 6px; }
.stage-item:last-child { padding-bottom: 0; }
.stage-item::before {
  content: ''; position: absolute; left: -26px; top: 6px;
  width: 16px; height: 16px; border-radius: 50%;
  background: #fff; border: 3px solid var(--line);
}
.stage-item.s-done::before { border-color: var(--ok); background: var(--ok); }
.stage-item.s-active::before {
  border-color: var(--accent); background: #fff;
  box-shadow: 0 0 0 5px #0fb2c024;
}
.stage-meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.stage-phase {
  font-size: 0.72rem; font-weight: 800; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--muted);
}
.stage-status {
  font-size: 0.7rem; font-weight: 800; border-radius: 999px; padding: 2px 9px;
  background: #eef3fa; color: var(--muted); border: 1px solid var(--line);
}
.s-done .stage-status { background: #e6f6ee; color: #0f7a4e; border-color: #bfe5d1; }
.s-active .stage-status { background: var(--accent-soft); color: #0a7c86; border-color: #b6e9ee; }
.stage-item h4 { margin: 6px 0 4px; font-size: 1.06rem; }
.stage-item p { margin: 0; color: var(--muted); max-width: 72ch; }

/* ---------- Who does what ---------- */
.work-split { margin-top: 22px; }
.work-split > h3 { margin: 0 0 12px; }
.split-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.split-card { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 18px; }
.split-card h4 { margin: 0 0 10px; font-size: 1rem; }
.split-card .ticks { margin: 0; }

/* ---------- Editable single paragraphs ---------- */
.nfc-note {
  margin: 14px 0 0; padding: 12px 14px; font-size: 0.88rem; color: var(--muted);
  background: var(--accent-soft); border: 1px solid #b6e9ee; border-radius: 12px;
}
.wide-note { margin: 18px 0 0; color: var(--muted); max-width: 90ch; }
.openness { margin: 14px 0 0; font-weight: 600; }

/* Forms */
label { display: block; font-size: 0.8rem; font-weight: 700; color: #3d4a68; margin: 0 0 6px; }
input, select, textarea {
  width: 100%; border: 1px solid #c9d5e6; border-radius: 10px; padding: 10px 12px;
  font: inherit; color: inherit; background: #fff;
}
input:focus, select:focus, textarea:focus { outline: 2px solid #0fb2c055; border-color: var(--accent); }
textarea { min-height: 120px; resize: vertical; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.form-grid .full { grid-column: 1 / -1; }
.inline { display: flex; gap: 8px; }
.inline > :first-child { flex: 1; }
.inline select { width: auto; }
.form-note { font-size: 0.82rem; color: var(--muted); margin-top: 10px; }
.notice { border-radius: 12px; padding: 12px 14px; font-size: 0.88rem; margin-top: 12px; border: 1px solid var(--line); background: #f7fafe; }
.notice.ok { background: #e7f7f0; border-color: #bfe7d3; }
.notice.err { background: #fdeaee; border-color: #f6c3ce; }

/* Footer */
footer.site {
  margin-top: 72px; background: var(--night); color: #9fb0c4; padding: 32px 0; font-size: 0.84rem;
}
footer.site .wrap { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; align-items: center; }
footer.site a { color: var(--teal-glow); }

/* ---------- Demo page ---------- */
.demo-banner {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px;
  background: var(--night); color: #d4e2f1; border-radius: 16px; padding: 12px 18px; margin: 22px 0 16px;
  font-size: 0.88rem;
}
.demo-banner b { color: var(--teal-glow); }
.live-dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: #22e07a; margin-right: 6px; box-shadow: 0 0 0 0 #22e07a88; animation: pulse 1.6s infinite; }
.live-dot.paused { background: #8895a8; animation: none; }
@keyframes pulse { 0% { box-shadow: 0 0 0 0 #22e07a88; } 100% { box-shadow: 0 0 0 10px #22e07a00; } }
.controls { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.scenario-buttons { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.chart-card { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 12px; }
.chart-card canvas { width: 100%; height: 280px; display: block; }
.legend { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 8px; font-size: 0.78rem; color: var(--muted); }
.legend span { display: inline-flex; align-items: center; gap: 6px; }
.legend i { width: 14px; height: 3px; border-radius: 2px; display: inline-block; }
.alert-list { display: flex; flex-direction: column; gap: 8px; max-height: 340px; overflow-y: auto; }
.alert-item { display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center; border: 1px solid var(--line); border-radius: 12px; padding: 9px 12px; background: #fff; font-size: 0.82rem; }
.alert-item .dot { width: 10px; height: 10px; border-radius: 50%; background: currentColor; }
.alert-item p { margin: 0; }
.alert-item .t { color: var(--muted); font-size: 0.76rem; white-space: nowrap; }
.empty { color: var(--muted); font-size: 0.86rem; padding: 10px 0; }
.meta-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.meta-grid .card { padding: 10px 12px; }
.meta-grid .k { font-size: 0.7rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.5px; font-weight: 700; }
.meta-grid .v { font-weight: 700; font-size: 0.92rem; }
.result-big { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.result-big .val { font-family: 'Manrope'; font-weight: 800; font-size: 2.4rem; line-height: 1; }
.reasons { margin: 10px 0 0; padding-left: 18px; font-size: 0.86rem; color: #3c4a63; }
.reasons li { margin-bottom: 4px; }
.compare { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 14px; }
.compare .card { padding: 10px 12px; }
.compare .k { font-size: 0.7rem; color: var(--muted); text-transform: uppercase; font-weight: 700; letter-spacing: 0.5px; margin-bottom: 4px; }
.cm td, .cm th { text-align: center; }
.cm td.diag { background: #e4f8fa; font-weight: 800; }
.bar { height: 8px; border-radius: 99px; background: #e9eef6; overflow: hidden; }
.bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--accent), var(--accent-2)); }
.fi-row { display: grid; grid-template-columns: 110px 1fr 48px; gap: 10px; align-items: center; font-size: 0.82rem; margin-bottom: 8px; }

/* ---------- Assistant ---------- */
.ai-fab {
  position: fixed; right: 20px; bottom: 20px; z-index: 80;
  display: inline-flex; align-items: center; gap: 10px;
  background: var(--night); color: #fff; border: 1px solid #22e0e655; border-radius: 999px;
  padding: 10px 16px 10px 10px; font: 700 0.9rem 'Inter'; cursor: pointer;
  box-shadow: 0 16px 40px -14px #0fb2c0aa;
}
.ai-fab img { width: 34px; height: 30px; object-fit: cover; border-radius: 50%; }
.ai-panel {
  position: fixed; right: 20px; bottom: 84px; z-index: 81; width: min(400px, calc(100vw - 24px));
  height: min(600px, calc(100vh - 110px)); display: none; flex-direction: column;
  background: #fff; border: 1px solid var(--line); border-radius: 20px; overflow: hidden;
  box-shadow: 0 30px 70px -20px #16233b66;
}
.ai-panel.open { display: flex; }
.ai-head { background: var(--night); color: #fff; padding: 12px 14px; display: flex; align-items: center; gap: 10px; }
.ai-head img { width: 36px; height: 32px; object-fit: cover; border-radius: 10px; }
.ai-head .t { flex: 1; }
.ai-head .t b { display: block; font-family: 'Manrope'; }
.ai-head .t small { color: #9fb0c4; font-size: 0.74rem; }
.ai-head button { background: none; border: none; color: #fff; font-size: 1.3rem; cursor: pointer; }
.ai-msgs { flex: 1; overflow-y: auto; padding: 14px; display: flex; flex-direction: column; gap: 10px; background: #f6f9fd; }
.msg { max-width: 88%; padding: 10px 12px; border-radius: 14px; font-size: 0.86rem; line-height: 1.5; }
.msg.bot { background: #fff; border: 1px solid var(--line); align-self: flex-start; border-top-left-radius: 4px; }
.msg.user { background: linear-gradient(135deg, var(--accent), var(--accent-2)); color: #fff; align-self: flex-end; border-top-right-radius: 4px; }
.msg p { margin: 0 0 6px; } .msg p:last-child { margin: 0; }
.msg ul { margin: 4px 0; padding-left: 18px; }
.msg a { color: var(--accent-2); font-weight: 700; }
.msg.typing { color: var(--muted); font-style: italic; }
.ai-suggest { display: flex; gap: 6px; flex-wrap: wrap; padding: 8px 12px; border-top: 1px solid var(--line); background: #fff; }
.ai-suggest button { border: 1px solid var(--line); background: #f5f8fc; color: #33405b; border-radius: 999px; padding: 5px 10px; font-size: 0.74rem; font-weight: 700; cursor: pointer; }
.ai-form { display: flex; gap: 8px; padding: 10px 12px; border-top: 1px solid var(--line); }
.ai-form input { border-radius: 999px; }
.ai-form button { border-radius: 999px; padding: 8px 14px; }
.ai-disclaimer { font-size: 0.68rem; color: var(--muted); padding: 0 12px 8px; background: #fff; }

/* ---------- Responsive ---------- */
@media (max-width: 1150px) {
  .gases-grid { grid-template-columns: repeat(3, 1fr); }
  .flow { grid-template-columns: repeat(3, 1fr); }
  .flow .step:nth-child(3)::after { display: none; }
}
@media (max-width: 900px) {
  .col-3, .col-4, .col-5, .col-6, .col-7, .col-8 { grid-column: span 12; }
  .hero .wrap { grid-template-columns: 1fr; }
  .hero-logo { max-width: 460px; }
  .live-mini { left: auto; right: 10px; }
  .kpi-row { grid-template-columns: repeat(2, 1fr); }
  .nav-toggle { display: inline-block; }
  .nav-links {
    display: none; position: absolute; top: 64px; left: 0; right: 0; flex-direction: column; align-items: stretch;
    background: var(--night); padding: 10px 16px 16px; border-bottom: 1px solid #ffffff14;
  }
  .nav-links.open { display: flex; }
  .nav-links a.cta { margin: 6px 0 0; text-align: center; }
  .honest { grid-template-columns: 1fr; }
  .compare { grid-template-columns: 1fr; }
  .visuals-grid, .split-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .wrap { padding: 0 14px; }
  .gases-grid, .flow, .visuals-grid, .split-grid { grid-template-columns: 1fr; }
  .roadmap { padding-left: 20px; }
  .flow .step::after { display: none; }
  .form-grid, .meta-grid { grid-template-columns: 1fr; }
  .qr-box { grid-template-columns: 1fr; justify-items: start; }
  .panel { padding: 16px; }
  .hero { padding: 36px 0 60px; }
  .live-mini { position: static; width: auto; margin-top: 12px; }
  .logo-stage { padding-bottom: 0; }
  .chart-card canvas { height: 220px; }
  .ai-fab span { display: none; }
  .ai-fab { padding: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* ---------- Overflow guards ---------- */
select { max-width: 100%; min-width: 0; }
.controls .inline { max-width: 100%; min-width: 0; }
