/* ==========================================================
   Vero — technical specimen sheet
   Blueprint / data-schematic aesthetic on void black
   ========================================================== */

:root{
  /* surfaces */
  --void: #05060A;
  --panel: #0A0C13;
  --panel-lift: #0E1119;

  /* rules */
  --line: rgba(255,255,255,0.09);
  --line-mid: rgba(255,255,255,0.16);
  --line-strong: rgba(255,255,255,0.30);

  /* type */
  --text: #E9EBF2;
  --text-dim: #9098AC;
  --text-faint: #5A6176;
  --text-ghost: #363C4B;

  /* iridescent accents */
  --cyan: #4FE8E0;
  --sky: #7BC8FF;
  --violet: #9B7BFF;
  --magenta: #FF6FD8;
  --amber: #FFC46B;
  --coral: #FF6B5A;

  --irid: linear-gradient(100deg,#4FE8E0 0%,#7BC8FF 28%,#9B7BFF 55%,#FF6FD8 82%,#4FE8E0 100%);

  --serif: "Newsreader", Georgia, serif;
  --sans: "IBM Plex Sans", -apple-system, sans-serif;
  --mono: "IBM Plex Mono", ui-monospace, monospace;
  --maxw: 1180px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--void);
  color:var(--text);
  font-family:var(--sans);
  font-size:100%;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

/* atmospheric vignette only — no grid */
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(ellipse 80% 50% at 50% 0%, rgba(155,123,255,0.10), transparent 70%),
    radial-gradient(ellipse 60% 45% at 85% 100%, rgba(79,232,224,0.07), transparent 70%),
    radial-gradient(ellipse 50% 40% at 10% 60%, rgba(255,111,216,0.04), transparent 70%);
}
/* faint scanline at the very top edge — like a calibrated screen */
body::after{
  content:"";position:fixed;top:0;left:0;right:0;height:1px;pointer-events:none;z-index:2;
  background:linear-gradient(90deg, transparent, rgba(79,232,224,0.4), rgba(155,123,255,0.4), transparent);
}
header,main,footer{position:relative;z-index:1;}

img,svg{display:block;max-width:100%;}
a{color:inherit;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;position:relative;}
p{max-width:66ch;}

h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.1;margin:0 0 0.5em;letter-spacing:-0.01em;}
h2{font-size:clamp(1.8rem,3.4vw,2.6rem);}

code{font-family:var(--mono);font-size:0.92em;color:var(--cyan);}

/* ---------- technical primitives ---------- */

/* coordinate marker in the right margin of each section */
.coord{
  position:absolute;top:0;right:32px;
  font-family:var(--mono);font-size:0.6rem;letter-spacing:0.08em;
  color:var(--text-ghost);text-transform:uppercase;
  writing-mode:vertical-rl;transform:rotate(180deg);
  padding:14px 0;
  display:none;
}
@media (min-width:1100px){ .coord{display:block;} }

/* technical ruler — thin ticked line above panels */
.ruler{
  display:flex;align-items:flex-end;height:14px;gap:0;
  border-bottom:1px solid var(--line);margin-bottom:18px;
}
.ruler i{
  flex:1;height:5px;border-left:1px solid var(--line-mid);
}
.ruler i:nth-child(5n+1){height:9px;border-left-color:var(--line-strong);}
.ruler i:nth-child(10n+1){height:12px;border-left-color:rgba(79,232,224,0.4);}

/* floating annotation tag (e.g. "FIG.02 / SPECIMEN") */
.tag-float{
  position:absolute;font-family:var(--mono);font-size:0.58rem;
  letter-spacing:0.12em;text-transform:uppercase;color:var(--text-ghost);
  pointer-events:none;
}

/* section header: [ 01 / LABEL ] */
.section-label{
  font-family:var(--mono);
  font-size:0.72rem;
  color:var(--text-faint);
  letter-spacing:0.14em;
  text-transform:uppercase;
  margin:0 0 18px;
  display:flex;align-items:center;gap:12px;
}
.section-label::before{
  content:"";width:26px;height:1px;background:var(--line-strong);flex:none;
}
.section-label::after{
  content:"";flex:1;height:1px;background:var(--line);max-width:120px;
}
.section-label .n{color:var(--cyan);}

/* corner-bracketed panel */
.panel{
  position:relative;
  background:var(--panel);
  border:1px solid var(--line);
}
.panel::before,.panel::after{
  content:"";position:absolute;width:11px;height:11px;pointer-events:none;
  border:1px solid var(--cyan);opacity:0.65;
}
.panel::before{top:-1px;left:-1px;border-right:none;border-bottom:none;}
.panel::after{bottom:-1px;right:-1px;border-left:none;border-top:none;}

/* mono annotation label */
.annot{
  font-family:var(--mono);font-size:0.66rem;letter-spacing:0.1em;
  text-transform:uppercase;color:var(--text-faint);
}

/* faint index numbers used as decoration */
.idx{
  font-family:var(--mono);font-size:0.64rem;color:var(--text-ghost);
  letter-spacing:0.08em;
}

/* iridescent text */
.irid-text{
  background:var(--irid);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}

/* ---------- nav ---------- */
.nav{
  position:sticky;top:0;z-index:30;
  background:rgba(5,6,10,0.82);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.nav .wrap{
  display:flex;align-items:center;justify-content:space-between;
  padding-top:15px;padding-bottom:15px;
}
.nav .brand{
  display:flex;align-items:center;
  text-decoration:none;color:var(--text);
}
.nav .brand .brand-logo{
  height:26px;width:auto;flex:none;
  filter:drop-shadow(0 0 6px rgba(79,232,224,0.25));
  transition:filter 0.2s, opacity 0.2s;
}
.nav .brand:hover .brand-logo{
  filter:drop-shadow(0 0 11px rgba(79,232,224,0.5));
}
.nav ul{list-style:none;display:flex;gap:26px;margin:0;padding:0;}
.nav .links a{
  text-decoration:none;font-family:var(--mono);font-size:0.82rem;
  letter-spacing:0.1em;text-transform:uppercase;color:var(--text-faint);
  transition:color 0.18s;
}
.nav .links a:hover{color:var(--cyan);}
.nav .links a[aria-current="page"]{color:var(--text);}
.nav .links{display:flex;}
@media (max-width:820px){ .nav .links{display:none;} }

/* ---------- hero ---------- */
.hero{padding:88px 0 96px;border:none;}
.hero .grid{
  display:grid;grid-template-columns:1.02fr 0.98fr;gap:64px;align-items:center;
}
@media (max-width:940px){ .hero .grid{grid-template-columns:1fr;gap:52px;} }

.hero .kicker{
  font-family:var(--mono);font-size:0.7rem;letter-spacing:0.16em;
  text-transform:uppercase;color:var(--text-faint);
  display:flex;align-items:center;gap:10px;margin:0 0 26px;
}
.hero .kicker .pip{
  width:5px;height:5px;background:var(--violet);border-radius:50%;
  box-shadow:0 0 8px 1px rgba(155,123,255,0.7);
}
.hero h1{
  font-size:clamp(2.6rem,5.6vw,4.1rem);
  margin-bottom:24px;
}
.hero h1 em{font-style:italic;}
.hero p.lede{font-size:1.06rem;color:var(--text-dim);max-width:56ch;}

.cta-row{display:flex;gap:14px;margin-top:34px;flex-wrap:wrap;align-items:center;}
.btn{
  font-family:var(--mono);font-size:0.82rem;font-weight:500;
  letter-spacing:0.12em;text-transform:uppercase;
  padding:13px 24px;text-decoration:none;
  display:inline-block;border:1px solid var(--line-mid);
  position:relative;transition:border-color 0.2s, color 0.2s, background 0.2s;
}
.btn.primary{
  color:var(--void);
  background:var(--cyan);
  border-color:var(--cyan);
}
.btn.primary:hover{background:#7BF0EA;border-color:#7BF0EA;}
.btn.ghost{background:transparent;color:var(--text-dim);}
.btn.ghost:hover{color:var(--cyan);border-color:var(--cyan);}

/* ---------- hero specimen: credential -> circuit -> post ---------- */
.specimen{
  position:relative;
  padding:30px 28px 26px;
  background:var(--panel);
  border:1px solid var(--line);
}
.specimen::before,.specimen::after{
  content:"";position:absolute;width:13px;height:13px;pointer-events:none;
  border:1px solid var(--violet);opacity:0.7;
}
.specimen::before{top:-1px;left:-1px;border-right:none;border-bottom:none;}
.specimen::after{bottom:-1px;right:-1px;border-left:none;border-top:none;}
/* coordinate ticks along the top edge */
.spec-ticks{
  position:absolute;top:7px;left:28px;right:28px;height:6px;
  display:flex;align-items:flex-end;gap:0;pointer-events:none;opacity:0.4;
}
.spec-ticks i{flex:1;height:3px;border-left:1px solid var(--text-faint);}
.spec-ticks i:nth-child(5n+1){height:6px;border-left-color:var(--violet);}

.specimen .spec-head{
  display:flex;justify-content:space-between;align-items:baseline;
  font-family:var(--mono);font-size:0.64rem;letter-spacing:0.12em;
  text-transform:uppercase;color:var(--text-faint);
  padding-bottom:14px;margin-bottom:18px;
  border-bottom:1px solid var(--line);
}

.card{
  background:var(--panel-lift);
  border:1px solid var(--line);
  padding:15px 17px;
  position:relative;
}
.card .card-tag{
  position:absolute;top:-1px;right:-1px;
  font-family:var(--mono);font-size:0.6rem;letter-spacing:0.1em;
  text-transform:uppercase;
  padding:3px 8px;
  color:var(--text-faint);
  border-left:1px solid var(--line);border-bottom:1px solid var(--line);
}

.cred .row{
  display:flex;justify-content:space-between;align-items:center;
  font-family:var(--mono);font-size:0.76rem;
  padding:8px 0;border-bottom:1px dashed rgba(255,255,255,0.07);
  color:var(--text-faint);letter-spacing:0.03em;
}
.cred .row:first-of-type{padding-top:14px;}
.cred .row:last-child{border-bottom:none;padding-bottom:2px;}

/* redacted field: hatched block */
.redact{
  display:inline-block;height:12px;border-radius:1px;
  background-image:repeating-linear-gradient(
    -45deg,
    rgba(255,255,255,0.20) 0 1px,
    transparent 1px 4px
  );
  border:1px solid rgba(255,255,255,0.16);
}
.redact.w1{width:92px;}
.redact.w2{width:58px;}
.redact.w3{width:118px;}
.visible-field{
  color:var(--cyan);font-weight:500;
  text-shadow:0 0 12px rgba(79,232,224,0.35);
}

/* circuit stage */
.flow{
  display:flex;align-items:center;gap:12px;
  padding:20px 2px;
  font-family:var(--mono);font-size:0.68rem;letter-spacing:0.06em;
  color:var(--text-faint);
}
.flow .node{
  width:26px;height:26px;flex:none;
  display:flex;align-items:center;justify-content:center;
  font-size:0.58rem;letter-spacing:0.06em;
  color:var(--violet);
  border:1px solid var(--violet);
  position:relative;
  box-shadow:0 0 14px rgba(155,123,255,0.28) inset;
}
.flow .rail{
  flex:1;height:1px;
  background:linear-gradient(90deg, var(--violet), rgba(155,123,255,0.15));
}

/* published post + seal */
.post{display:flex;align-items:flex-start;gap:13px;}
.post .avatar{
  width:32px;height:32px;flex:none;
  border:1px solid var(--line-mid);
  background-image:repeating-linear-gradient(
    -45deg, rgba(255,255,255,0.09) 0 1px, transparent 1px 5px);
}
.post .claim{font-size:0.9rem;color:var(--text-dim);}

.seal{
  display:inline-flex;align-items:center;gap:7px;
  font-family:var(--mono);font-size:0.66rem;letter-spacing:0.14em;
  text-transform:uppercase;
  padding:5px 12px;margin-top:11px;
  color:var(--cyan);
  border:1px solid rgba(79,232,224,0.55);
  background:rgba(79,232,224,0.07);
  box-shadow:0 0 20px rgba(79,232,224,0.18);
  opacity:0;animation:seal-in 0.5s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:1.2s;
}
.seal .tick{font-size:0.72rem;}
@keyframes seal-in{
  from{opacity:0;transform:translateY(4px) scale(0.94);filter:blur(2px);}
  to{opacity:1;transform:none;filter:none;}
}

.spec-foot{
  font-family:var(--mono);font-size:0.66rem;line-height:1.6;
  color:var(--text-faint);margin:20px 0 0;padding-top:16px;
  border-top:1px solid var(--line);max-width:none;
}
.spec-foot b{color:var(--cyan);font-weight:500;}

/* ---------- sections ---------- */
section{padding:88px 0;border-top:1px solid var(--line);}
.lede-2{color:var(--text-dim);margin-top:16px;font-size:1rem;}

/* flagged intercepts (misinformation examples) */
.clippings{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px;}
@media (max-width:880px){ .clippings{grid-template-columns:1fr;} }
.clip{
  position:relative;
  background:var(--panel);
  border:1px solid var(--line);
  border-left:2px solid var(--coral);
  padding:20px 20px 18px;
}
.clip .flag{
  display:inline-flex;align-items:center;gap:7px;
  font-family:var(--mono);font-size:0.62rem;letter-spacing:0.1em;
  text-transform:uppercase;color:var(--coral);
  margin-bottom:13px;
}
.clip .flag::before{
  content:"";width:5px;height:5px;background:var(--coral);border-radius:50%;
}
.clip q{
  display:block;font-family:var(--serif);font-size:1.08rem;
  line-height:1.4;color:var(--text);quotes:none;margin-bottom:10px;
}
.clip .note{font-size:0.95rem;color:var(--text-faint);margin:0;max-width:none;}

/* mechanism: 4-stage schematic */
.mech{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:44px;
  border:1px solid var(--line);
}
@media (max-width:960px){ .mech{grid-template-columns:1fr;} }
.mech-step{
  padding:26px 22px 28px;
  background:var(--panel);
  position:relative;
}
.mech-step + .mech-step{border-left:1px solid var(--line);}
@media (max-width:960px){
  .mech-step + .mech-step{border-left:none;border-top:1px solid var(--line);}
}
.mech-step .k{
  font-family:var(--mono);font-size:0.64rem;letter-spacing:0.12em;
  text-transform:uppercase;color:var(--violet);
  display:flex;align-items:center;gap:9px;margin-bottom:16px;
}
.mech-step .k .num{
  color:var(--text-ghost);
}
.mech-step h3{font-size:1.08rem;margin:0 0 9px;}
.mech-step p{font-size:1rem;color:var(--text-dim);margin:0;max-width:none;}
/* connector dot between stages */
.mech-step:not(:last-child)::after{
  content:"";position:absolute;top:50%;right:-4px;
  width:7px;height:7px;border-radius:50%;
  background:var(--void);border:1px solid var(--violet);
  transform:translateY(-50%);z-index:2;
}
@media (max-width:960px){ .mech-step:not(:last-child)::after{display:none;} }

/* scope: two-column spec */
.scope{
  display:grid;grid-template-columns:1fr 1fr;margin-top:36px;
  border:1px solid var(--line);
}
@media (max-width:780px){ .scope{grid-template-columns:1fr;} }
.scope-col{padding:30px 30px 32px;background:var(--panel);}
.scope-col + .scope-col{border-left:1px solid var(--line);}
@media (max-width:780px){
  .scope-col + .scope-col{border-left:none;border-top:1px solid var(--line);}
}
.scope-col h3{
  font-family:var(--mono);font-size:0.7rem;letter-spacing:0.14em;
  text-transform:uppercase;font-weight:500;margin:0 0 20px;
}
.scope-col.in h3{color:var(--cyan);}
.scope-col.out h3{color:var(--text-faint);}
.scope-col ul{list-style:none;padding:0;margin:0;}
.scope-col li{
  padding:11px 0;font-size:1rem;display:flex;gap:13px;align-items:flex-start;
  border-bottom:1px dashed rgba(255,255,255,0.06);
}
.scope-col li:last-child{border-bottom:none;}
.mark{font-family:var(--mono);flex:none;font-size:0.8rem;line-height:1.6;}
.mark.yes{color:var(--cyan);}
.mark.no{color:var(--text-ghost);}
.scope-col.out li{color:var(--text-faint);}

/* comparison table */
.table-wrap{margin-top:38px;border:1px solid var(--line);overflow-x:auto;}
table{width:100%;border-collapse:collapse;font-size:0.9rem;min-width:600px;}
thead th{
  font-family:var(--mono);font-weight:500;font-size:0.64rem;
  letter-spacing:0.12em;text-transform:uppercase;color:var(--text-faint);
  text-align:left;padding:14px 18px;
  background:var(--panel-lift);
  border-bottom:1px solid var(--line-mid);
}
tbody td{
  text-align:left;padding:16px 18px;vertical-align:top;
  border-bottom:1px solid var(--line);color:var(--text-dim);
  background:var(--panel);
}
tbody tr:last-child td{border-bottom:none;}
tbody th{
  text-align:left;padding:16px 18px;vertical-align:top;font-weight:400;
  border-bottom:1px solid var(--line);color:var(--text);
  background:var(--panel);font-family:var(--sans);font-size:0.9rem;
}
tbody tr:last-child th{border-bottom:none;}
tr.us th,tr.us td{
  background:rgba(79,232,224,0.045);
  color:var(--text);
}
tr.us th{
  border-left:2px solid var(--cyan);
  font-family:var(--mono);font-size:0.8rem;letter-spacing:0.1em;
  text-transform:uppercase;color:var(--cyan);
}

/* personas */
.personas{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:44px;}
@media (max-width:880px){ .personas{grid-template-columns:1fr;} }
.persona{
  position:relative;background:var(--panel);
  border:1px solid var(--line);padding:28px 22px 24px;
}
.persona::before{
  content:"";position:absolute;top:-1px;left:-1px;width:11px;height:11px;
  border:1px solid var(--violet);border-right:none;border-bottom:none;opacity:0.7;
}
.persona .tab{
  position:absolute;top:0;right:0;
  font-family:var(--mono);font-size:0.6rem;letter-spacing:0.12em;
  text-transform:uppercase;color:var(--text-faint);
  padding:4px 10px;
  border-left:1px solid var(--line);border-bottom:1px solid var(--line);
}
.persona h3{font-size:1.1rem;margin:0 0 12px;}
.persona .jtbd{
  font-family:var(--serif);font-style:italic;font-size:0.98rem;
  color:var(--text-dim);margin:0 0 16px;max-width:none;
}
.persona .pain{
  font-family:var(--mono);font-size:0.85rem;line-height:1.65;
  color:var(--text-faint);
  border-top:1px dashed rgba(255,255,255,0.08);
  padding-top:14px;margin:0;max-width:none;
}

/* roadmap: staged rail */
.timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:48px;}
@media (max-width:960px){ .timeline{grid-template-columns:1fr;gap:28px;} }
.wave{position:relative;padding-top:22px;border-top:1px solid var(--line-mid);}
.wave.active{border-top:1px solid var(--cyan);}
.wave::before{
  content:"";position:absolute;top:-4px;left:0;
  width:7px;height:7px;border-radius:50%;
  background:var(--void);border:1px solid var(--line-strong);
}
.wave.active::before{
  border-color:var(--cyan);background:var(--cyan);
  box-shadow:0 0 12px 2px rgba(79,232,224,0.55);
  animation:pip 2s ease-in-out infinite;
}
@keyframes pip{0%,100%{opacity:1;}50%{opacity:0.35;}}
.wave .k{
  font-family:var(--mono);font-size:0.64rem;letter-spacing:0.13em;
  text-transform:uppercase;color:var(--text-faint);
}
.wave.active .k{color:var(--cyan);}
.wave h3{font-size:1.02rem;margin:12px 0 8px;}
.wave p{font-size:0.95rem;color:var(--text-dim);max-width:none;margin:0;}

/* status checklist */
.checklist{list-style:none;padding:0;margin:38px 0 0;max-width:620px;}
.checklist li{
  display:flex;align-items:center;gap:16px;padding:14px 0;
  border-bottom:1px solid var(--line);font-size:1rem;
  color:var(--text-faint);
}
.checklist li:last-child{border-bottom:none;}
.box{
  width:16px;height:16px;flex:none;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:0.62rem;
  border:1px solid var(--line-mid);color:transparent;
}
.checklist li.done{color:var(--text);}
.checklist li.done .box{
  border-color:var(--cyan);color:var(--cyan);
  background:rgba(79,232,224,0.09);
  box-shadow:0 0 12px rgba(79,232,224,0.2);
}
.checklist li.active .box{
  border-color:var(--amber);
  background:rgba(255,196,107,0.08);
}
.checklist li.active{color:var(--text-dim);}
.checklist li .tail{
  margin-left:auto;font-family:var(--mono);font-size:0.62rem;
  letter-spacing:0.1em;text-transform:uppercase;color:var(--text-ghost);
}
.checklist li.done .tail{color:rgba(79,232,224,0.6);}
.checklist li.active .tail{color:var(--amber);}

.deadline{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--mono);font-size:0.8rem;letter-spacing:0.1em;
  text-transform:uppercase;color:var(--coral);
  margin-top:30px;padding:9px 14px;
  border:1px solid rgba(255,107,90,0.3);
  background:rgba(255,107,90,0.05);
}
.deadline::before{
  content:"";width:5px;height:5px;border-radius:50%;background:var(--coral);
}

.inline-link{
  display:inline-flex;align-items:center;gap:8px;margin-top:28px;
  font-family:var(--mono);font-size:0.82rem;letter-spacing:0.1em;
  text-transform:uppercase;color:var(--cyan);text-decoration:none;
  border-bottom:1px solid rgba(79,232,224,0.4);padding-bottom:3px;
}
.inline-link:hover{border-bottom-color:var(--cyan);}

/* ---------- footer ---------- */
footer{padding:56px 0 64px;border-top:1px solid var(--line);}
footer .wrap{
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:26px;
  font-family:var(--mono);font-size:0.72rem;line-height:1.75;
  color:var(--text-faint);letter-spacing:0.02em;
}
footer strong{color:var(--text);font-weight:500;}
footer a{color:var(--text-dim);text-decoration:none;border-bottom:1px solid var(--line-mid);}
footer a:hover{color:var(--cyan);border-bottom-color:var(--cyan);}
footer .meta{text-align:right;}
@media (max-width:720px){ footer .meta{text-align:left;} }

/* ==========================================================
   progress page
   ========================================================== */

.page-intro{
  font-family:var(--serif);font-style:italic;font-size:1.12rem;
  color:var(--text-dim);max-width:64ch;margin:14px 0 0;
}

.stamp-row{
  display:flex;align-items:center;gap:18px;flex-wrap:wrap;
  margin-top:30px;padding:14px 18px;
  border:1px solid var(--line);background:var(--panel);
  font-family:var(--mono);font-size:0.78rem;letter-spacing:0.1em;
  text-transform:uppercase;color:var(--text-faint);
}
.stamp-row .sep{width:1px;height:14px;background:var(--line-mid);}
.stamp-row time,.stamp-row b{color:var(--text);font-weight:400;}
.stamp-row .live{
  display:inline-flex;align-items:center;gap:8px;color:var(--cyan);
}
.stamp-row .live::before{
  content:"";width:5px;height:5px;border-radius:50%;background:var(--cyan);
  box-shadow:0 0 8px 1px rgba(79,232,224,0.7);
  animation:pip 2s ease-in-out infinite;
}

/* build log: rail + entries */
.log{margin-top:44px;position:relative;padding-left:0;}
.log-entry{
  display:grid;grid-template-columns:150px 1fr;gap:32px;
  padding:28px 0;
  border-top:1px solid var(--line);
}
.log-entry:last-of-type{border-bottom:1px solid var(--line);}
@media (max-width:780px){
  .log-entry{grid-template-columns:1fr;gap:14px;}
}
.log-meta{display:flex;flex-direction:column;gap:11px;align-items:flex-start;}
.log-meta time{
  font-family:var(--mono);font-size:0.82rem;letter-spacing:0.06em;
  color:var(--text-dim);
}
.log-status{
  font-family:var(--mono);font-size:0.7rem;letter-spacing:0.13em;
  text-transform:uppercase;padding:4px 9px;
  display:inline-flex;align-items:center;gap:7px;
}
.log-status::before{content:"";width:5px;height:5px;border-radius:50%;}
.log-status.done{
  color:var(--cyan);border:1px solid rgba(79,232,224,0.35);
  background:rgba(79,232,224,0.06);
}
.log-status.done::before{background:var(--cyan);box-shadow:0 0 8px 1px rgba(79,232,224,0.6);}
.log-status.in-progress{
  color:var(--amber);border:1px solid rgba(255,196,107,0.32);
  background:rgba(255,196,107,0.05);
}
.log-status.in-progress::before{background:var(--amber);animation:pip 2s ease-in-out infinite;}
.log-status.blocked{
  color:var(--coral);border:1px solid rgba(255,107,90,0.32);
  background:rgba(255,107,90,0.05);
}
.log-status.blocked::before{background:var(--coral);}

.log-body h3{font-size:1.14rem;margin:0 0 10px;}
.log-body p{font-size:1rem;color:var(--text-dim);margin:0;max-width:64ch;}
.log-body p + p{margin-top:13px;}
.log-body .link{
  display:inline-block;margin-top:14px;font-family:var(--mono);
  font-size:0.68rem;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--text-faint);text-decoration:none;
  border-bottom:1px solid var(--line-mid);padding-bottom:2px;
}
.log-body .link:hover{color:var(--cyan);border-bottom-color:var(--cyan);}

.log-hint{
  margin-top:40px;padding:20px 22px;
  background:var(--panel);border:1px dashed var(--line-mid);
  font-family:var(--mono);font-size:0.72rem;line-height:1.7;
  color:var(--text-faint);max-width:none;
}
.log-hint b{color:var(--cyan);font-weight:500;}
.log-hint code{color:var(--text-dim);}

/* ---------- motion ---------- */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .seal{animation:none !important;opacity:1 !important;transform:none !important;filter:none !important;}
  .wave.active::before,.stamp-row .live::before,.log-status.in-progress::before,.status-group-label.now::before{animation:none !important;}
}

/* ==========================================================
   New elements: problem conclusion, disclosure choice,
   scope closing, source types, c2pa distinction,
   web3 callout, status groups, closing section
   ========================================================== */

.section-conclusion{
  font-family:var(--serif);font-style:italic;font-size:1.15rem;
  color:var(--text);margin:40px 0 0;max-width:62ch;
  padding-left:18px;border-left:2px solid var(--cyan);
}

/* disclosure choice (mechanism) */
.disclosure-choice{
  display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:44px;
}
@media (max-width:680px){ .disclosure-choice{grid-template-columns:1fr;} }
.dc-col{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  padding:18px 20px;background:var(--panel);border:1px solid var(--line);
}
.dc-label{
  font-family:var(--mono);font-size:0.68rem;letter-spacing:0.1em;
  text-transform:uppercase;color:var(--text-faint);
}
.dc-arrow{color:var(--text-ghost);font-family:var(--mono);}
.dc-result{
  display:inline-flex;align-items:center;gap:7px;
  font-family:var(--mono);font-size:0.68rem;letter-spacing:0.12em;
  text-transform:uppercase;color:var(--cyan);
}
.dc-result .tick{font-size:0.74rem;}

/* scope closing statement */
.scope-closing{
  font-family:var(--serif);font-size:1.3rem;font-style:italic;
  color:var(--text);margin:40px 0 0;max-width:62ch;
  text-align:left;
}
.scope-closing em{color:var(--cyan);font-style:italic;}

/* source types */
.source-types{
  display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:44px;
}
@media (max-width:880px){ .source-types{grid-template-columns:1fr;} }
.source-card{
  position:relative;background:var(--panel);
  border:1px solid var(--line);padding:28px 22px 24px;min-height:200px;
}
.source-card::before{
  content:"";position:absolute;top:-1px;left:-1px;width:11px;height:11px;
  border:1px solid var(--violet);border-right:none;border-bottom:none;opacity:0.7;
}
.source-tab{
  position:absolute;top:0;right:0;
  font-family:var(--mono);font-size:0.6rem;letter-spacing:0.12em;
  text-transform:uppercase;color:var(--text-faint);
  padding:4px 10px;
  border-left:1px solid var(--line);border-bottom:1px solid var(--line);
}
.source-list{list-style:none;padding:0;margin:0;}
.source-list li{
  font-family:var(--sans);font-size:0.95rem;color:var(--text-dim);
  padding:7px 0;border-bottom:1px dashed rgba(255,255,255,0.06);
}
.source-list li:last-child{border-bottom:none;}
.source-list li.muted{color:var(--text-faint);font-size:0.9rem;}
.source-desc{
  font-size:0.9rem;color:var(--text-dim);margin:0 0 18px;max-width:none;
}
.pseudo-example{
  display:flex;flex-direction:column;gap:8px;
  padding:16px;background:var(--panel-lift);border:1px solid var(--line);
}
.pseudo-handle{
  font-family:var(--mono);font-size:0.82rem;color:var(--text);
}
.seal.small{
  font-size:0.6rem;padding:4px 10px;margin:0;animation:none;opacity:1;
}
.pseudo-meta{
  font-family:var(--mono);font-size:0.62rem;letter-spacing:0.06em;
  color:var(--text-faint);
}

/* c2pa distinction */
.c2pa-distinction{
  display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:40px;
}
@media (max-width:680px){ .c2pa-distinction{grid-template-columns:1fr;} }
.c2pa-col{
  padding:24px 26px;background:var(--panel);border:1px solid var(--line);
  position:relative;
}
.c2pa-col::before{
  content:"";position:absolute;top:-1px;left:-1px;width:11px;height:11px;
  border:1px solid var(--cyan);border-right:none;border-bottom:none;opacity:0.6;
}
.c2pa-label{
  display:block;font-family:var(--mono);font-size:0.62rem;letter-spacing:0.12em;
  text-transform:uppercase;color:var(--text-faint);margin-bottom:12px;
}
.c2pa-col p{
  font-family:var(--serif);font-style:italic;font-size:1.1rem;
  color:var(--text);margin:0;max-width:none;
}

/* web3 callout */
.web3-example{
  display:grid;grid-template-columns:auto 1fr;gap:32px;align-items:center;margin-top:44px;
}
@media (max-width:780px){ .web3-example{grid-template-columns:1fr;gap:20px;} }
.web3-card{
  display:flex;flex-direction:column;gap:10px;align-items:flex-start;
  padding:24px 26px;background:var(--panel);border:1px solid var(--line);
  position:relative;min-width:280px;
}
.web3-card::before,.web3-card::after{
  content:"";position:absolute;width:12px;height:12px;pointer-events:none;
  border:1px solid var(--violet);opacity:0.7;
}
.web3-card::before{top:-1px;left:-1px;border-right:none;border-bottom:none;}
.web3-card::after{bottom:-1px;right:-1px;border-left:none;border-top:none;}
.web3-handle{
  font-family:var(--mono);font-size:1rem;color:var(--text);
}
.web3-card .seal{animation:none;opacity:1;margin:0;}
.web3-meta{
  font-family:var(--mono);font-size:0.66rem;letter-spacing:0.08em;
  color:var(--text-faint);
}
.web3-note{
  font-family:var(--serif);font-style:italic;font-size:1.05rem;
  color:var(--text-dim);margin:0;max-width:52ch;
}

/* status groups */
.status-groups{
  display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:40px;
}
@media (max-width:820px){ .status-groups{grid-template-columns:1fr;gap:24px;} }
.status-group-label{
  font-family:var(--mono);font-size:0.64rem;letter-spacing:0.16em;
  text-transform:uppercase;margin:0 0 16px;
  display:flex;align-items:center;gap:10px;
}
.status-group-label::before{
  content:"";width:7px;height:7px;border-radius:50%;
}
.status-group-label.done{color:var(--cyan);}
.status-group-label.done::before{background:var(--cyan);box-shadow:0 0 8px 1px rgba(79,232,224,0.5);}
.status-group-label.now{color:var(--amber);}
.status-group-label.now::before{background:var(--amber);animation:pip 2s ease-in-out infinite;}
.status-group-label.next{color:var(--text-faint);}
.status-group-label.next::before{background:var(--text-faint);}
.status-group .checklist{margin-top:0;}
.status-group .checklist li{font-size:1rem;}
.status-group .checklist li .tail{display:none;}

.progress-statement{
  font-family:var(--serif);font-style:italic;font-size:1.1rem;
  color:var(--text-dim);margin:36px 0 0;max-width:62ch;
}

/* closing section */
#closing{padding:96px 0 104px;}
.closing-headline{
  font-size:clamp(2rem,4.5vw,3.2rem);
  margin-bottom:20px;
}
.closing-headline em{color:var(--cyan);font-style:italic;}
.closing-copy{
  font-size:1.05rem;color:var(--text-dim);max-width:62ch;margin:0;
}

/* scope list items with bold labels */
.scope-col.in li{line-height:1.55;}
.scope-col.in li b{color:var(--text);font-weight:500;}

body{
  background:#020308;
}
body::before{
  background:
    radial-gradient(ellipse 55% 34% at 72% 10%,rgba(75,45,160,.16),transparent 72%),
    radial-gradient(ellipse 42% 28% at 8% 72%,rgba(28,157,166,.07),transparent 75%);
}
h1,h2,h3{
  font-family:var(--sans);
  font-weight:400;
  letter-spacing:-0.045em;
}
h1 em,h2 em,.closing-headline em{
  font-family:var(--sans);
  font-style:normal;
  background:linear-gradient(100deg,#f9f8f9 5%,#8d94ff 45%,#33e6e3 94%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.wrap{max-width:1240px;padding-inline:42px;}
section{padding:112px 0;border-top-color:rgba(255,255,255,.075);}
.nav{background:rgba(2,3,8,.76);backdrop-filter:blur(18px);}
.nav .wrap{padding-top:19px;padding-bottom:19px;}
.nav .brand .brand-logo{height:29px;}
.hero{min-height:calc(100vh - 68px);padding:72px 0 90px;display:flex;align-items:center;}
.hero .grid{grid-template-columns:.88fr 1.12fr;gap:58px;width:100%;}
.hero h1{font-size:clamp(3.3rem,6.8vw,5.75rem);line-height:.94;letter-spacing:-.065em;}
.hero .lede{font-size:1rem;line-height:1.72;max-width:53ch;}
.hero .kicker{margin-bottom:34px;}
.specimen{
  min-height:650px;padding:0;overflow:hidden;
  background:rgba(5,7,14,.3);
  border-color:rgba(255,255,255,.16);
  box-shadow:inset 0 0 80px rgba(2,3,8,.72),0 28px 90px rgba(0,0,0,.35);
}
.specimen-art{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:.86;filter:saturate(1.08) contrast(1.04);
  mix-blend-mode:screen;pointer-events:none;
}
.specimen .spec-head{
  position:absolute;z-index:3;top:27px;left:28px;right:28px;
  padding-bottom:12px;margin:0;
}
.specimen .card,.specimen .flow,.specimen .spec-foot{position:absolute;z-index:3;}
.specimen .cred{
  top:96px;left:24px;width:min(72%,360px);
  background:rgba(6,8,15,.56);backdrop-filter:blur(10px);
  border-color:rgba(255,255,255,.24);
}
.specimen .flow{
  top:365px;right:18px;width:54%;padding:12px 0;
  text-shadow:0 1px 8px #020308;
}
.specimen .post{
  right:22px;bottom:82px;width:min(66%,330px);
  background:rgba(6,8,15,.58);backdrop-filter:blur(12px);
  border-color:rgba(255,255,255,.28);
}
.specimen .spec-foot{
  left:26px;right:26px;bottom:15px;margin:0;padding-top:12px;
  text-shadow:0 1px 8px #020308;
}
.specimen::before,.specimen::after{width:23px;height:23px;border-color:rgba(255,255,255,.58);}
.spec-ticks{z-index:4;}
.card{background:rgba(8,10,18,.42);backdrop-filter:blur(7px);}
.section-label{margin-bottom:24px;}
.section-label::after{max-width:180px;background:linear-gradient(90deg,var(--line-mid),transparent);}
h2{font-size:clamp(2.35rem,4.7vw,4rem);line-height:1.01;}
.lede-2{font-size:1rem;line-height:1.75;}
.clippings{gap:1px;margin-top:52px;background:rgba(255,255,255,.1);}
.clip{
  min-height:250px;padding:30px 28px;background:rgba(3,5,10,.83);
  border:0;border-top:1px solid rgba(255,255,255,.28);
}
.clip::after{
  content:"";position:absolute;inset:10px;border:1px solid rgba(255,255,255,.055);pointer-events:none;
}
.clip .flag{color:#a996ff;}
.clip .flag::before{background:#a996ff;box-shadow:0 0 12px rgba(169,150,255,.55);}
.clip q{font-family:var(--sans);font-size:1.25rem;letter-spacing:-.025em;margin-top:34px;}
.clip .note{line-height:1.7;}
.mech{gap:18px;border:0;background:transparent;}
.mech-step{
  min-height:270px;padding:30px 24px;background:rgba(7,9,16,.35);
  border:1px solid rgba(255,255,255,.105);
  backdrop-filter:blur(7px);
}
.mech-step + .mech-step{border-left:1px solid rgba(255,255,255,.105);}
.mech-step:not(:last-child)::after{right:-13px;background:#33e6e3;border-color:#33e6e3;box-shadow:0 0 14px rgba(51,230,227,.5);}
.mech-step h3{font-size:1.18rem;letter-spacing:-.03em;margin-top:38px;}
.disclosure-choice{gap:1px;background:rgba(255,255,255,.1);}
.dc-col{background:rgba(4,6,12,.72);border:0;min-height:76px;}
.scope{border-color:rgba(255,255,255,.12);background:rgba(255,255,255,.06);gap:1px;}
.scope-col{background:rgba(4,6,12,.76);padding:38px 34px;}
.scope-col + .scope-col{border:0;}
.scope-col li{padding:16px 0;}
.source-types{gap:18px;}
.source-card,.persona{
  background:rgba(5,7,13,.4);backdrop-filter:blur(8px);
  border-color:rgba(255,255,255,.115);
}
.source-card{min-height:280px;padding:36px 28px;}
.source-tab,.persona .tab,.card .card-tag{background:rgba(2,3,8,.58);backdrop-filter:blur(6px);}
.pseudo-example,.web3-card{background:rgba(5,7,14,.55);backdrop-filter:blur(10px);}
.table-wrap{border-color:rgba(255,255,255,.12);background:rgba(3,5,10,.55);backdrop-filter:blur(8px);}
thead th,tbody td,tbody th{background:transparent;}
thead th{background:rgba(255,255,255,.035);}
tr.us th,tr.us td{background:rgba(51,230,227,.055);}
.c2pa-col{background:rgba(5,7,14,.42);backdrop-filter:blur(8px);min-height:145px;}
.personas{gap:18px;}
.persona{min-height:250px;padding:38px 28px;}
.persona h3{font-size:1.28rem;margin-top:34px;}
.persona .jtbd{font-family:var(--sans);font-style:normal;line-height:1.7;}
#web3 .wrap::before{
  content:"";position:absolute;width:560px;height:560px;right:-80px;top:-165px;
  background:radial-gradient(circle,rgba(111,78,255,.17),rgba(51,230,227,.04) 40%,transparent 70%);
  filter:blur(14px);pointer-events:none;
}
.web3-card{min-height:210px;justify-content:center;border-color:rgba(255,255,255,.18);}
.web3-example{grid-template-columns:minmax(300px,440px) 1fr;}
.timeline{gap:18px;}
.wave{min-height:225px;padding:30px 22px 28px;border:1px solid rgba(255,255,255,.095);}
.wave.active{border:1px solid rgba(51,230,227,.35);background:linear-gradient(150deg,rgba(51,230,227,.065),transparent 65%);}
.wave::before{top:-4px;left:22px;}
.wave h3{font-size:1.35rem;margin-top:45px;}
.status-groups{gap:18px;}
.status-group{padding:24px;background:rgba(5,7,14,.35);border-top:1px solid rgba(255,255,255,.14);}
.stamp-row{background:rgba(5,7,14,.34);backdrop-filter:blur(8px);}
.log-entry{border-color:rgba(255,255,255,.09);}
.log-hint{background:rgba(5,7,14,.35);}
#closing{min-height:58vh;display:flex;align-items:center;overflow:hidden;}
#closing::after{
  content:"";position:absolute;width:620px;height:620px;right:-160px;top:50%;transform:translateY(-50%);
  background:radial-gradient(circle,rgba(51,230,227,.16),rgba(110,75,255,.10) 32%,transparent 68%);
  filter:blur(18px);pointer-events:none;
}
.closing-headline{font-size:clamp(3rem,7vw,6rem);line-height:.92;letter-spacing:-.065em;}
.closing-copy{line-height:1.75;}
@media (max-width:940px){
  .hero{min-height:auto;}
  .hero .grid{grid-template-columns:1fr;}
  .specimen{min-height:620px;max-width:680px;width:100%;margin:auto;}
  .mech{grid-template-columns:1fr 1fr;}
  .mech-step:not(:last-child)::after{display:none;}
}
@media (max-width:720px){
  .wrap{padding-inline:22px;}
  section{padding:82px 0;}
  .hero{padding-top:58px;}
  .hero h1{font-size:clamp(3rem,16vw,4.6rem);}
  .specimen{min-height:570px;}
  .specimen .cred{width:82%;}
  .specimen .flow{top:350px;width:66%;}
  .specimen .post{width:78%;}
  .mech{grid-template-columns:1fr;gap:12px;}
  .mech-step + .mech-step{border-left:1px solid rgba(255,255,255,.105);}
  .web3-example{grid-template-columns:1fr;}
  .clip{min-height:auto;}
}

/* ==========================================================
   Slide deck
   ========================================================== */

.deck-body{overflow:hidden;height:100vh;}
.deck-body footer{display:none;}

.deck{
  height:calc(100vh - 68px);
}

.slide{
  display:none;
  height:100%;
  padding:24px 0;
  /* Not align-items:center. Centring a flex child that is taller than its
     container makes the overflow spill above the scroll origin, so the top of
     a long slide can never be scrolled to. flex-start plus margin:auto on the
     child centres exactly the same way when there is room, and collapses to
     the top when there is not — which is the behaviour a scroll container
     needs. */
  align-items:flex-start;
  border-top:1px solid rgba(255,255,255,.075);
  overflow-y:auto;
}
.slide.active{display:flex;}
.slide:first-of-type{border-top:none;}

.slide-inner{
  max-width:920px;
  /* Bottom padding, not just side padding: the deck controls are fixed at
     bottom right, and without clearance the last line of a long slide ends up
     tucked against the edge with nothing to scroll into. */
  padding:0 42px 88px;
  width:100%;
  margin:auto;
}

/* slide header elements */
.slide-num{
  font-family:var(--mono);font-size:0.72rem;letter-spacing:0.12em;
  color:var(--text-ghost);text-transform:uppercase;
  display:block;margin-bottom:20px;
}
.slide-label{
  font-family:var(--mono);font-size:0.72rem;letter-spacing:0.14em;
  text-transform:uppercase;color:var(--cyan);
  margin:0 0 24px;
  display:flex;align-items:center;gap:12px;
}
.slide-label::before{
  content:"";width:26px;height:1px;background:var(--line-strong);flex:none;
}

/* slide titles */
.slide-h2{
  font-size:clamp(2rem,4.5vw,3.4rem);
  line-height:1.02;letter-spacing:-.045em;
  margin:0 0 40px;
}
.slide-h2 em{
  background:linear-gradient(100deg,#f9f8f9 5%,#8d94ff 45%,#33e6e3 94%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}

/* cover slide */
.slide-cover .slide-inner{
  text-align:center;
  display:flex;flex-direction:column;align-items:center;
}
.slide-cover{border-top:none;}
.slide-kicker{
  font-family:var(--mono);font-size:0.78rem;letter-spacing:0.16em;
  text-transform:uppercase;color:var(--text-faint);
  display:flex;align-items:center;gap:10px;margin:0 0 40px;
}
.slide-kicker .pip{
  width:5px;height:5px;background:var(--violet);border-radius:50%;
  box-shadow:0 0 8px 1px rgba(155,123,255,0.7);
}
.slide-title{
  font-size:clamp(4rem,12vw,8rem);
  line-height:.9;letter-spacing:-.065em;
  margin:0 0 16px;
  background:linear-gradient(100deg,#f9f8f9 5%,#8d94ff 45%,#33e6e3 94%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
/* The cover carries the mark itself rather than the word set in the deck's
   face — the checked O is the whole point of the identity, and typing "Vero"
   throws it away. The gradient fill is reset because it only ever applied to
   text. */
.slide-title.is-logo{
  background:none;-webkit-text-fill-color:initial;color:inherit;
  line-height:1;margin:0 0 26px;
}
.cover-logo{display:block;width:clamp(240px,36vw,420px);height:auto;}

.slide-subtitle{
  font-size:clamp(1.5rem,3.5vw,2.4rem);
  font-family:var(--sans);font-weight:400;letter-spacing:-.035em;
  color:var(--text);margin:0 0 32px;
}
.slide-subtitle em{
  background:linear-gradient(100deg,#f9f8f9 5%,#8d94ff 45%,#33e6e3 94%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.slide-tagline{
  font-size:1.1rem;color:var(--text-dim);line-height:1.7;
  max-width:52ch;margin:0 0 48px;
}
.slide-foot{
  display:flex;align-items:center;gap:18px;flex-wrap:wrap;justify-content:center;
  font-family:var(--mono);font-size:0.78rem;letter-spacing:0.1em;
  text-transform:uppercase;color:var(--text-faint);
  padding:14px 22px;
  border:1px solid var(--line);background:rgba(5,7,14,.34);
}
.slide-foot .sep{width:1px;height:14px;background:var(--line-mid);}
.slide-foot-center{
  text-align:center;font-family:var(--mono);font-size:0.78rem;
  letter-spacing:0.1em;text-transform:uppercase;color:var(--text-faint);
  margin-top:32px;
}

/* bullet lists */
.slide-list{
  list-style:none;padding:0;margin:0 0 36px;
  display:flex;flex-direction:column;gap:18px;
}
.slide-list li{
  font-size:1.1rem;color:var(--text-dim);line-height:1.65;
  padding-left:24px;position:relative;max-width:68ch;
}
.slide-list li::before{
  content:"";position:absolute;left:0;top:13px;
  width:8px;height:1px;background:var(--cyan);
}
.slide-list b{color:var(--text);font-weight:500;}
.slide-list code{font-family:var(--mono);font-size:0.95em;color:var(--cyan);}

/* callout */
.slide-callout{
  font-family:var(--sans);font-style:italic;font-size:1.25rem;
  color:var(--text);line-height:1.5;max-width:62ch;
  padding-left:20px;border-left:2px solid var(--cyan);
  margin:0;
}
.slide-callout em{
  background:linear-gradient(100deg,#f9f8f9 5%,#8d94ff 45%,#33e6e3 94%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  font-style:normal;
}

/* steps (slide 3) */
.slide-steps{
  display:grid;grid-template-columns:repeat(2,1fr);gap:16px;
  margin:0 0 40px;
}
@media (max-width:680px){ .slide-steps{grid-template-columns:1fr;} }
.step{
  display:flex;align-items:flex-start;gap:16px;
  padding:22px 24px;
  background:rgba(7,9,16,.35);
  border:1px solid rgba(255,255,255,.105);
  backdrop-filter:blur(7px);
}
.step-n{
  font-family:var(--mono);font-size:0.85rem;color:var(--cyan);
  width:32px;height:32px;flex:none;
  display:flex;align-items:center;justify-content:center;
  border:1px solid rgba(79,232,224,0.4);
  background:rgba(79,232,224,0.06);
}
.step p{font-size:1rem;color:var(--text-dim);margin:0;line-height:1.55;max-width:none;}

/* demo frame (slide 5) */
.demo-frame{
  margin:0 0 36px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(3,5,10,.55);
  backdrop-filter:blur(8px);
}
.demo-placeholder{
  min-height:280px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:48px 24px;gap:14px;
}
.demo-label{
  font-family:var(--mono);font-size:0.85rem;letter-spacing:0.12em;
  text-transform:uppercase;color:var(--text-ghost);
}
.demo-caption{
  font-size:1rem;color:var(--text-dim);margin:0;
}
.demo-meta{margin-bottom:0;}
.demo-meta li{font-size:1rem;}

/* roadmap grid (slide 6) */
.roadmap-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:18px;
  margin-top:8px;
}
@media (max-width:780px){ .roadmap-grid{grid-template-columns:1fr;} }
.rm-wave{
  padding:28px 26px;
  background:rgba(5,7,13,.35);
  border:1px solid rgba(255,255,255,.095);
  border-top:1px solid rgba(255,255,255,.14);
}
.rm-wave.active{
  border:1px solid rgba(51,230,227,.35);
  background:linear-gradient(150deg,rgba(51,230,227,.065),transparent 65%);
}
.rm-k{
  font-family:var(--mono);font-size:0.72rem;letter-spacing:0.13em;
  text-transform:uppercase;color:var(--text-faint);
  margin-bottom:6px;
}
.rm-wave.active .rm-k{color:var(--cyan);}
.rm-dates{
  font-family:var(--mono);font-size:0.68rem;color:var(--text-ghost);
  margin:0 0 16px;
}
.rm-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;}
.rm-list li{
  font-size:0.95rem;color:var(--text-dim);line-height:1.5;
  padding-left:22px;position:relative;
}
.rm-list li::before{
  content:"";position:absolute;left:0;top:10px;
  width:8px;height:1px;background:var(--line-mid);
}
.rm-list li.done{color:var(--text);}
.rm-list li.done::before{background:var(--cyan);}
.rm-list li.active{color:var(--text-dim);}
.rm-list li.active::before{background:var(--amber);box-shadow:0 0 8px rgba(255,196,107,.5);}

/* team (slide 7) */
.team-card{
  display:flex;align-items:center;gap:24px;
  padding:32px 30px;margin-bottom:36px;
  background:rgba(5,7,13,.35);
  border:1px solid rgba(255,255,255,.095);
  border-top:1px solid rgba(255,255,255,.14);
}
.team-avatar{
  width:88px;height:88px;flex:none;
  border:1px solid rgba(255,255,255,.16);
  object-fit:cover;
  display:block;
}
.team-info h3{font-size:1.6rem;margin:0 0 8px;}
.team-role{
  font-size:1rem;color:var(--text-dim);margin:0;line-height:1.6;
}
.team-note{margin-bottom:24px;}
/* The seal sits in the corner of the card, as a stamp on a document does,
   rather than trailing the role line. Absolute against the card, so it holds
   the corner whatever the copy does. */
.team-card{position:relative;}
.team-seal{position:absolute;top:16px;right:16px;margin:0;}
.seal-mark{width:15px;height:15px;display:block;flex:none;}
@media (max-width:780px){
  /* No corner to spare once the card tightens — back into the flow. */
  .team-seal{position:static;margin-top:14px;}
}
.team-seal-note{
  font-family:var(--mono);font-size:0.68rem;line-height:1.6;
  color:var(--text-faint);margin:9px 0 0;max-width:46ch;
}

/* Slide 8 only: the credit sits on the baseline of the slide rather than
   trailing the copy. Stretching lets the inner column fill the height, and
   margin-top:auto pushes the credit down. Every other slide stays centred. */
.slide-foot-left{
  text-align:left;font-family:var(--mono);font-size:0.78rem;
  letter-spacing:0.1em;text-transform:uppercase;color:var(--text-faint);
  margin:48px 0 0;
}
.slide.slide-team{align-items:stretch;}
.slide-team .slide-inner{display:flex;flex-direction:column;padding-bottom:40px;margin:0 auto;}
.slide-team .slide-foot-left{margin-top:auto;padding-top:32px;}

/* deck controls */
.deck-controls{
  /* Bottom-right rather than centred: centred, the controls sit on top of the
     content column and cover whatever the slide ends with. Here they fall in
     the right margin on any screen wide enough to have one. */
  position:fixed;bottom:24px;right:24px;
  z-index:50;
  display:flex;align-items:center;gap:16px;
  padding:10px 18px;
  background:rgba(2,3,8,.82);
  backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,.1);
}
.deck-btn{
  font-family:var(--mono);font-size:1.1rem;
  width:36px;height:36px;
  display:flex;align-items:center;justify-content:center;
  background:transparent;border:1px solid rgba(255,255,255,.12);
  color:var(--text-dim);cursor:pointer;
  transition:border-color 0.2s, color 0.2s, background 0.2s;
}
.deck-btn:hover{
  color:var(--cyan);border-color:var(--cyan);
  background:rgba(79,232,224,.06);
}
.deck-counter{
  font-family:var(--mono);font-size:0.82rem;letter-spacing:0.08em;
  color:var(--text-faint);min-width:64px;text-align:center;
}

/* slide responsive */
@media (max-width:720px){
  .deck-controls{bottom:14px;right:14px;padding:7px 12px;gap:10px;}
  .deck-btn{width:30px;height:30px;font-size:.95rem;}
  .deck-counter{min-width:48px;font-size:.72rem;}
  /* room for the controls so the last line of a slide is never under them */
  .slide-inner{padding:0 22px 64px;}
  .slide{padding:30px 0;}
  .slide-h2{font-size:clamp(1.6rem,7vw,2.4rem);}
  .slide-list li{font-size:1rem;}
  .slide-callout{font-size:1.1rem;}
  .step{padding:18px 20px;}
  .team-card{padding:24px 22px;gap:18px;}
  .team-avatar{width:64px;height:64px;}
  .team-info h3{font-size:1.3rem;}
}



/* ==========================================================
   Slide 5 — terminal transcript
   Replaces the screenshot placeholder: until the demo frontend
   exists, the CLI transcript is the actual demonstrable artefact.
   ========================================================== */

.demo-terminal{
  margin:0;
  padding:26px 28px;
  font-family:var(--mono);
  font-size:0.82rem;
  line-height:1.7;
  color:var(--text);
  white-space:pre;
  overflow-x:auto;
}
.demo-terminal .t-dim{color:var(--text-faint);}
.demo-terminal .t-in{color:var(--violet);}
.demo-terminal .t-ok{color:var(--cyan);}

@media (max-width:720px){
  .demo-terminal{font-size:0.7rem;padding:18px 16px;}
}

/* Slide 5 — the reader view itself, rather than a description of it. */
.demo-shot { margin: 0 0 20px; }
.demo-shot img {
  width: 100%;
  display: block;
  border: 1px solid rgba(255, 255, 255, 0.12);
}
.demo-shot figcaption {
  font-family: var(--mono);
  font-size: 0.7rem;
  letter-spacing: 0.06em;
  color: var(--text-faint);
  margin-top: 10px;
}
@media (max-width: 720px) { .demo-shot figcaption { font-size: 0.64rem; } }

/* ── Adoption ───────────────────────────────────────────── */

.adopt{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:44px;}
@media (max-width:880px){ .adopt{grid-template-columns:1fr;} }
.adopt-col{
  position:relative;background:rgba(5,7,13,.4);backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.115);padding:38px 28px 30px;
}
.adopt-col::before{
  content:"";position:absolute;top:-1px;left:-1px;width:11px;height:11px;
  border:1px solid var(--cyan);border-right:none;border-bottom:none;opacity:.7;
}
.adopt-tab{
  position:absolute;top:0;right:0;
  font-family:var(--mono);font-size:.6rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--text-faint);padding:4px 10px;
  border-left:1px solid var(--line);border-bottom:1px solid var(--line);
  background:rgba(2,3,8,.58);backdrop-filter:blur(6px);
}
.adopt-col h3{font-size:1.2rem;letter-spacing:-.03em;margin:22px 0 14px;}
.adopt-col p{font-size:.97rem;color:var(--text-dim);max-width:none;margin:0 0 12px;}
.adopt-then{
  font-family:var(--mono);font-size:.82rem;line-height:1.7;
  color:var(--text-faint)!important;
  border-top:1px dashed rgba(255,255,255,.08);padding-top:12px;margin:16px 0 0!important;
}

.adopt-h{
  font-family:var(--sans);font-size:1.35rem;font-weight:400;letter-spacing:-.03em;
  margin:56px 0 0;
}

.reasons{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:26px;}
@media (max-width:880px){ .reasons{grid-template-columns:1fr;} }
.reason{
  background:rgba(5,7,14,.35);border:1px solid rgba(255,255,255,.095);
  border-top:1px solid rgba(255,255,255,.2);padding:24px 22px;
}
.reason-k{
  display:block;font-family:var(--mono);font-size:.62rem;letter-spacing:.13em;
  text-transform:uppercase;color:var(--cyan);margin-bottom:12px;
}
.reason p{font-size:.94rem;color:var(--text-dim);margin:0;max-width:none;line-height:1.65;}
.reason b{color:var(--text);font-weight:500;}

#adoption .lede-2{margin-top:18px;}
#adoption .lede-2 b{color:var(--text);font-weight:500;}

.team-sub{
  font-family:var(--mono);font-size:.8rem;line-height:1.8;
  color:var(--text-faint);max-width:64ch;margin:20px 0 0;
}
