/* ============================================================
   LusoCryptoLabs - shared brand stylesheet
   Plain letters · three-dot device · Ink / Paper / Vermelho
   ============================================================ */
/* ---------- self-hosted fonts (Archivo + Space Mono) ---------- */
/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLydOxI.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLydOxI.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLydOxI.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLydOxI.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLydOxI.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 900;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLydOxI.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/i7dPIFZifjKcF5UAWdDRYEF8RQ.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/i7dMIFZifjKcF5UAWdDRaPpZUFWaHg.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root{
  --ink:#121212;
  --ink-2:#1b1b1b;
  --ink-3:#262626;
  --paper:#F4F1EB;
  --paper-2:#EAE5DC;
  --vermelho:#E10600;
  --vermelho-on-dark:#FF4438;  /* small red text on Ink: ~5.5:1 (WCAG AA) */
  --vermelho-on-light:#C90000; /* small red text on Paper: ~5.4:1 (WCAG AA) */
  --grafite:#8A857B;
  --grafite-d:#5C5A54;
  --line:#2b2b2b;
  --line-strong:#6f6f6f;
  --line-light:#D8D2C7;
  --maxw:1280px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--ink); color:var(--paper);
  font-family:'Archivo',sans-serif; -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:inherit; text-decoration:none;}
.mono{font-family:'Space Mono',monospace;}

/* ---------- accessibility ---------- */
:focus-visible{outline:2px solid var(--vermelho-on-dark); outline-offset:3px; border-radius:2px;}
.btn-primary:focus-visible{outline-color:#fff;}
.cta-band[style*="--paper"] :focus-visible{outline-color:var(--vermelho-on-light);}
.cta-band[style*="--paper"] .btn-primary:focus-visible{outline-color:#fff;}
.skip-link{position:absolute; left:8px; top:-64px; z-index:100; background:var(--vermelho); color:#fff;
  font-family:'Space Mono',monospace; font-size:13px; letter-spacing:.08em; text-transform:uppercase;
  padding:12px 18px; border-radius:4px; transition:top .2s var(--ease);}
.skip-link:focus{top:8px;}
main{display:block;}

/* ---------- three-dot device ---------- */
.dots{display:inline-flex; align-items:center; gap:.62em; color:currentColor; line-height:0; vertical-align:middle;}
.dots i{width:1em; height:1em; border-radius:50%; background:currentColor; display:block; flex:none;}
.dots i.s{background:var(--vermelho);}

/* red full-stop device for headlines */
.stop{color:var(--vermelho);}

/* ---------- wordmark ---------- */
.wmi{font-weight:900; letter-spacing:-.03em; text-transform:uppercase; display:inline-flex; align-items:center; gap:.5em; line-height:1;}
.wmi .dots{font-size:.2em; gap:.7em;}

/* ============ HEADER ============ */
.site-head{
  position:sticky; top:0; z-index:50;
  display:flex; justify-content:space-between; align-items:center;
  padding:20px 40px; background:rgba(18,18,18,.78); backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.site-head .wmi{font-size:19px;}
.nav{display:flex; align-items:center; gap:34px; font-family:'Space Mono',monospace; font-size:12px; letter-spacing:.16em; text-transform:uppercase;}
.nav a{color:var(--grafite); transition:color .25s var(--ease); position:relative; padding:4px 0;}
.nav a:hover{color:var(--paper);}
.nav a[aria-current="page"]:not(.cta)::after{content:""; position:absolute; left:0; bottom:-2px; width:6px; height:6px; border-radius:50%; background:var(--vermelho);}
.nav a[aria-current="page"]:not(.cta){color:var(--paper);}
.nav .cta{color:var(--ink); background:var(--paper); padding:9px 16px; border-radius:999px; letter-spacing:.12em;}
.nav .cta:hover{background:var(--vermelho); color:#fff;}
.nav-toggle{display:none; background:none; border:0; color:var(--paper); cursor:pointer; font-size:22px; line-height:1;}
@media(max-width:1000px){
  .site-head{height:55px; padding:0 24px;}
  .nav{position:fixed; inset:55px 0 auto 0; flex-direction:column; gap:8px; align-items:stretch;
    background:var(--ink-2); border-bottom:1px solid var(--line); padding:18px 40px 28px;
    transform:translateY(-130%); transition:transform .4s var(--ease);
    max-height:calc(100vh - 55px); max-height:calc(100dvh - 55px); overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch;}
  .nav.open{transform:translateY(0);}
  .nav a{padding:12px 0; font-size:14px; border-bottom:1px solid var(--line);}
  .nav .cta{text-align:center; border-bottom:0; margin-top:8px;}
  .nav-toggle{display:block;}
  .nav .langsw{padding:14px 0; gap:20px;}
  .nav .langsw a{padding:12px 6px; min-height:44px; display:inline-flex; align-items:center; border-bottom:0; width:auto;}
}

/* ============ LAYOUT PRIMITIVES ============ */
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 40px;}
section{position:relative;}
.pad{padding:120px 0;}
.pad-sm{padding:80px 0;}
@media(max-width:860px){ .pad{padding:80px 0;} .wrap{padding:0 24px;} }

.eyebrow{font-family:'Space Mono',monospace; font-size:12px; letter-spacing:.34em; text-transform:uppercase; color:var(--vermelho-on-dark); margin:0 0 24px; display:flex; align-items:center; gap:12px;}
.eyebrow::before{content:""; width:28px; height:1px; background:var(--vermelho-on-dark);}
/* On the light (paper) CTA bands, switch to the darker red so small eyebrow text keeps >=4.5:1. */
.cta-band[style*="--paper"] .eyebrow{color:var(--vermelho-on-light);}
.cta-band[style*="--paper"] .eyebrow::before{background:var(--vermelho-on-light);}

h1,h2,h3{margin:0; font-weight:900; letter-spacing:-.03em; line-height:.94; text-transform:uppercase;}
.display{font-size:clamp(48px,9vw,148px);}
.h2{font-size:clamp(34px,5.5vw,76px);}
.h3{font-size:clamp(24px,3vw,40px); letter-spacing:-.02em;}
.lead{font-size:clamp(17px,1.5vw,21px); line-height:1.6; color:#C9C4BA; max-width:60ch; margin:0;}
.muted{color:var(--grafite);}
.mono-label{font-family:'Space Mono',monospace; font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--grafite);}

/* buttons */
.btn{display:inline-flex; align-items:center; gap:12px; font-family:'Space Mono',monospace; font-size:13px; letter-spacing:.14em; text-transform:uppercase; padding:15px 26px; border-radius:999px; transition:all .28s var(--ease); cursor:pointer; border:1px solid transparent;}
.btn .arrow{transition:transform .28s var(--ease);}
.btn:hover .arrow{transform:translateX(5px);}
.btn-primary{background:var(--vermelho); color:#fff;}
.btn-primary:hover{background:#fff; color:var(--ink);}
.btn-ghost{border-color:var(--line-strong); color:var(--paper);}
.btn-ghost:hover{border-color:var(--paper);}

/* ============ REVEAL ANIMATION ============
   Content is VISIBLE by default. The hidden start-state is only applied when
   JS is active (html.reveal-on) AND motion is allowed - so no-JS, print/PDF
   export and reduced-motion all show content instead of blank sections. */
.reveal{transition:opacity .8s var(--ease), transform .8s var(--ease);}
@media(prefers-reduced-motion:no-preference){
  html.reveal-on .reveal:not(.in){opacity:0; transform:translateY(28px);}
  /* Keep above-the-fold LCP elements painted (opacity:1) so LCP is not gated on JS exec;
     they still slide in via the transform when .in is added. */
  html.reveal-on .hero h1 .reveal:not(.in){opacity:1;}
  html.reveal-on .cs-cover.reveal:not(.in){opacity:1;}
}
.reveal[data-d="1"]{transition-delay:.08s;}
.reveal[data-d="2"]{transition-delay:.16s;}
.reveal[data-d="3"]{transition-delay:.24s;}
.reveal[data-d="4"]{transition-delay:.32s;}
@media(prefers-reduced-motion:reduce){ html{scroll-behavior:auto;} }
/* Print / PDF: never export blank - force all reveals visible. */
@media print{ .reveal{opacity:1 !important; transform:none !important;} }
.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}

/* ============ FOOTER ============ */
.site-foot{border-top:1px solid var(--line); padding:90px 0 44px; background:var(--ink);}
.foot-top{display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:48px;}
@media(max-width:1000px){ .foot-top{grid-template-columns:1fr 1fr;} }
.foot-cta .h2{margin-bottom:28px;}
.foot-col .foot-col-h{font-family:'Space Mono',monospace; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--grafite); margin:0 0 18px; font-weight:700;}
.foot-col a{display:block; padding:7px 0; color:#C9C4BA; font-size:15px; transition:color .2s;}
.foot-col a:hover{color:var(--vermelho);}
.foot-bottom{display:flex; justify-content:space-between; align-items:center; margin-top:80px; padding-top:28px; border-top:1px solid var(--line); font-family:'Space Mono',monospace; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--grafite); flex-wrap:wrap; gap:16px;}
@media(max-width:860px){ .foot-top{grid-template-columns:1fr; gap:40px;} }

/* ============ SHARED PARTS ============ */
.placeholder{background:repeating-linear-gradient(45deg,var(--ink-2),var(--ink-2) 12px,var(--ink-3) 12px,var(--ink-3) 24px); border:1px solid var(--line); display:grid; place-items:center; font-family:'Space Mono',monospace; font-size:11px; letter-spacing:.14em; color:var(--grafite); text-transform:uppercase; text-align:center; padding:20px;}

hr.rule{border:none; border-top:1px solid var(--line); margin:0;}

/* page intro band */
.page-hero{padding:140px 0 90px; border-bottom:1px solid var(--line);}
.page-hero .display{margin-top:18px;}

/* ============ CASE STUDY (shared by case*.html) ============ */
.cs-hero{padding:130px 0 0;}
.cs-hero .display{margin:18px 0 0;}
.cs-meta{display:grid; grid-template-columns:repeat(4,1fr); gap:32px; margin:60px 0 0; padding:34px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.cs-meta .k{font-family:'Space Mono',monospace; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--grafite); margin-bottom:10px;}
.cs-meta .v{font-size:16px; font-weight:600;}
@media(max-width:760px){ .cs-meta{grid-template-columns:1fr 1fr; gap:24px;} }
.cs-cover{aspect-ratio:21/9; margin-top:0; position:relative; overflow:hidden; border:1px solid var(--line);}
.cs-cover img{width:100%; height:100%; object-fit:cover; object-position:top left; display:block;}
.cs-body{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start;}
.cs-body .big{font-size:clamp(24px,3vw,38px); font-weight:800; line-height:1.12; letter-spacing:-.02em; text-transform:none;}
.cs-body .big em{font-style:normal; color:var(--grafite);}
@media(max-width:860px){ .cs-body{grid-template-columns:1fr; gap:28px;} }
.quote{font-size:clamp(28px,4vw,52px); font-weight:800; line-height:1.08; letter-spacing:-.02em; max-width:22ch; text-transform:none;}
.quote-cite{font-family:'Space Mono',monospace; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--grafite); margin-top:28px;}
.res{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.res .cell{background:var(--ink); padding:44px 32px;}
.res .n{font-size:clamp(40px,5vw,72px); font-weight:900; letter-spacing:-.03em; line-height:1;}
.res .l{font-family:'Space Mono',monospace; font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--grafite); margin-top:14px;}
@media(max-width:760px){ .res{grid-template-columns:1fr;} }
.gallery{display:grid; grid-template-columns:1fr 1fr; gap:24px;}
.gallery .placeholder{aspect-ratio:4/3;}
.gallery .wide{grid-column:1 / -1; aspect-ratio:21/9;}
@media(max-width:760px){ .gallery{grid-template-columns:1fr;} }
.nextlink{display:flex; justify-content:space-between; align-items:center; padding:60px 0; gap:24px; flex-wrap:wrap;}
.nextlink .t{font-size:clamp(26px,7vw,64px); font-weight:900; text-transform:uppercase; letter-spacing:-.02em; line-height:1; overflow-wrap:anywhere; word-break:break-word; hyphens:auto;}
.nextlink a:hover .t{color:var(--vermelho);}

/* ---------- cursor follower (progressive enhancement) ---------- */
.cursor-dot{position:fixed; top:0; left:0; width:12px; height:12px; border-radius:50%; background:var(--vermelho); pointer-events:none; z-index:95; transform:translate(-50%,-50%); opacity:0; transition:width .22s var(--ease), height .22s var(--ease), background .22s var(--ease), opacity .3s var(--ease);}
.cursor-dot.on{opacity:1;}
.cursor-dot.lg{width:46px; height:46px; background:transparent; border:1.5px solid var(--vermelho);}
@media (hover:none),(pointer:coarse){ .cursor-dot{display:none !important;} }
@media (prefers-reduced-motion:reduce){ .cursor-dot{display:none !important;} }

/* ---------- language switcher ---------- */
.langsw{display:inline-flex; gap:12px; align-items:center; font-family:'Space Mono',monospace; font-size:11px; letter-spacing:.12em; text-transform:uppercase;}
.langsw a{color:var(--grafite); padding:4px 0;}
.langsw a:hover{color:var(--paper);}
.langsw a.on{color:var(--vermelho-on-dark);}
/* ============ SIGNALS (home live activity) ============ */
.signals .sig-head{display:flex; justify-content:space-between; align-items:flex-end; gap:32px 48px; flex-wrap:wrap; margin-bottom:48px;}
.sig-social{display:flex; gap:14px; flex-wrap:wrap;}
.sig-card{border:1px solid var(--line); padding:18px 22px; min-width:210px; display:flex; flex-direction:column; gap:6px; transition:border-color .25s var(--ease), background .25s var(--ease);}
.sig-card:hover{border-color:var(--paper); background:var(--ink-2);}
.sig-card-k{font-family:'Space Mono',monospace; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--vermelho-on-dark);}
.sig-card-v{font-size:18px; font-weight:700; display:flex; align-items:center; gap:8px;}
.sig-card .arrow{transition:transform .25s var(--ease);}
.sig-card:hover .arrow{transform:translateX(4px);}
.gh{border-top:1px solid var(--line); padding-top:30px;}
.gh-head{display:flex; justify-content:space-between; align-items:baseline; gap:16px; margin-bottom:22px; font-family:'Space Mono',monospace; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--grafite); flex-wrap:wrap;}
.gh-head a{color:var(--paper);}
.gh-head a:hover{color:var(--vermelho-on-dark);}
.gh-repos{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
@media(max-width:860px){ .gh-repos{grid-template-columns:1fr 1fr;} }
@media(max-width:560px){ .gh-repos{grid-template-columns:1fr;} }
.gh-repo{background:var(--ink); padding:24px; display:flex; flex-direction:column; gap:10px; min-height:148px; transition:background .25s var(--ease);}
.gh-repo:hover{background:var(--ink-2);}
.gh-repo-name{font-size:18px; font-weight:800; letter-spacing:-.01em;}
.gh-repo:hover .gh-repo-name{color:var(--vermelho-on-dark);}
.gh-repo-desc{font-size:13px; line-height:1.5; color:var(--grafite); flex:1;}
.gh-repo-foot{display:flex; gap:14px; align-items:center; font-family:'Space Mono',monospace; font-size:11px; letter-spacing:.04em; color:var(--grafite); margin-top:auto;}
.gh-repo-foot .gh-stars{color:var(--paper);}
.gh-fallback{font-family:'Space Mono',monospace; font-size:13px; letter-spacing:.06em; text-transform:uppercase; color:var(--grafite); display:inline-flex; gap:10px; align-items:center;}
.gh-fallback:hover{color:var(--vermelho-on-dark);}
.gh-fallback .arrow{transition:transform .25s var(--ease);}
.gh-fallback:hover .arrow{transform:translateX(4px);}
.gh-items{list-style:none; margin:26px 0 0; padding:0;}
.gh-items li a{display:grid; grid-template-columns:88px 120px 1fr auto; gap:18px; align-items:baseline; padding:14px 0; border-top:1px solid var(--line); font-size:14px; color:inherit;}
.gh-items li:first-child a{border-top:0;}
.gh-items .gh-it-kind{font-family:'Space Mono',monospace; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--vermelho-on-dark);}
.gh-items .gh-it-repo{font-family:'Space Mono',monospace; font-size:11px; color:var(--grafite); text-transform:uppercase; letter-spacing:.06em;}
.gh-items .gh-it-title{color:#C9C4BA; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.gh-items li a:hover .gh-it-title{color:var(--paper);}
.gh-items .gh-it-ago{font-family:'Space Mono',monospace; font-size:11px; color:var(--grafite); white-space:nowrap;}
@media(max-width:760px){ .gh-items li a{grid-template-columns:1fr auto; gap:4px 12px;} .gh-items .gh-it-title{grid-column:1 / -1; white-space:normal;} }

/* ---------- mobile polish (from audit) ---------- */
h1,h2,h3{overflow-wrap:break-word;}
@media(max-width:860px){ .page-hero{padding:96px 0 56px;} .pad-sm{padding:56px 0;} }
@media(max-width:760px){ .cs-cover{aspect-ratio:16/10;} .eyebrow{letter-spacing:.18em; align-items:flex-start; flex-wrap:wrap;} .eyebrow::before{margin-top:7px;} }
@media(max-width:560px){ .page-hero{padding:80px 0 44px;} .pad-sm{padding:44px 0;} .display{font-size:clamp(34px,9vw,52px);} }
@media(max-width:520px){ .cs-cover{aspect-ratio:4/3;} }

/* ============ INCUBATOR ============ */
.inc-note{display:inline-flex; align-items:center; gap:10px; font-family:'Space Mono',monospace; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--vermelho-on-dark); border:1px solid var(--line-strong); border-radius:999px; padding:9px 16px;}
.inc-note i{width:7px; height:7px; border-radius:50%; background:var(--vermelho); display:block; flex:none;}

/* stage rail */
.inc-rail{display:flex; align-items:flex-start; gap:0; margin:0; padding:0; list-style:none;}
.inc-step{flex:1 1 0; min-width:0; position:relative; padding:26px 18px 0 0;}
.inc-step::before{content:""; position:absolute; top:0; left:0; width:20px; height:20px; border-radius:50%; background:var(--ink); border:2px solid var(--line-strong); z-index:1;}
.inc-step::after{content:""; position:absolute; top:9px; left:20px; right:0; height:2px; background:var(--line);}
.inc-step:last-child{padding-right:0;}
.inc-step:last-child::after{display:none;}
.inc-step.is-done::before{background:var(--paper); border-color:var(--paper);}
.inc-step.is-done::after{background:var(--paper);}
.inc-step.is-next::before{border-color:var(--vermelho-on-dark); background:var(--ink); box-shadow:0 0 0 4px rgba(255,68,56,.14);}
.inc-step.is-active::before{border-color:var(--vermelho-on-dark); background:var(--ink);}
.inc-step.is-fork::after{background:none; border-top:2px dashed var(--line-strong);}
.inc-step .st-num{font-family:'Space Mono',monospace; font-size:11px; letter-spacing:.16em; color:var(--grafite);}
.inc-step .st-name{display:block; font-size:clamp(18px,2vw,24px); font-weight:800; letter-spacing:-.01em; margin:6px 0 10px; text-transform:uppercase;}
.inc-step.is-next .st-name,.inc-step.is-active .st-name{color:var(--vermelho-on-dark);}
.inc-step .st-src{display:inline-block; font-family:'Space Mono',monospace; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--grafite); border:1px solid var(--line); border-radius:999px; padding:5px 10px;}
.inc-step .st-state{display:block; font-family:'Space Mono',monospace; font-size:11px; letter-spacing:.05em; color:var(--grafite); margin-top:12px;}
@media(prefers-reduced-motion:no-preference){
  .inc-step.is-active::before{animation:incpulse 2.4s var(--ease) infinite;}
}
@keyframes incpulse{0%,100%{box-shadow:0 0 0 4px rgba(255,68,56,.16);}50%{box-shadow:0 0 0 7px rgba(255,68,56,.04);}}
@media(max-width:760px){
  .inc-rail{flex-direction:column;}
  .inc-step{padding:0 0 30px 34px;}
  .inc-step::before{top:2px;}
  .inc-step::after{top:22px; left:9px; right:auto; bottom:2px; width:2px; height:auto;}
  .inc-step:last-child{padding-bottom:0;}
  .inc-step.is-fork::after{border-top:none; border-left:2px dashed var(--line-strong);}
}

/* at a glance card */
.inc-glance{border:1px solid var(--line); padding:28px 26px;}
.inc-glance h3{font-size:13px; letter-spacing:.16em; color:var(--vermelho-on-dark); margin:0 0 8px;}
.inc-glance h3 .ill{color:var(--grafite); letter-spacing:.1em;}
.inc-glance .row{display:flex; justify-content:space-between; gap:18px; padding:15px 0; border-top:1px solid var(--line); font-size:14px;}
.inc-glance .row .k{font-family:'Space Mono',monospace; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--grafite);}
.inc-glance .row .v{font-weight:700; text-align:right;}
.inc-glance .row .v.hot{color:var(--vermelho-on-dark);}

/* founder note */
.inc-founder{border-left:2px solid var(--vermelho); padding:4px 0 4px 24px; margin-top:34px;}
.inc-founder .sig{font-family:'Space Mono',monospace; font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--grafite); margin:16px 0 0;}

/* vote + funding bars */
.inc-meter-head{display:flex; justify-content:space-between; align-items:baseline; gap:16px; font-family:'Space Mono',monospace; font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--grafite); margin-bottom:24px;}
.bar{position:relative; height:18px; background:var(--ink-2); border:1px solid var(--line);}
.bar .fill{position:absolute; left:0; top:0; bottom:0; background:var(--vermelho);}
.bar .fill.soft{background:#7d7a73;}
.bar .tick{position:absolute; top:-7px; bottom:-7px; width:2px; background:var(--paper);}
.bar .tick .lbl{position:absolute; top:-19px; left:50%; transform:translateX(-50%); font-family:'Space Mono',monospace; font-size:10px; letter-spacing:.06em; color:var(--paper); white-space:nowrap;}
.bar .tick.is-end .lbl{left:auto; right:0; transform:none;}
.bar.is-pending{height:auto; min-height:44px; border-style:dashed; border-color:var(--line-strong); background:repeating-linear-gradient(45deg,var(--ink-2),var(--ink-2) 10px,var(--ink-3) 10px,var(--ink-3) 20px); display:flex; align-items:center; justify-content:center;}
.bar.is-pending .pending-lbl{font-family:'Space Mono',monospace; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--grafite);}
.inc-reassure{font-family:'Space Mono',monospace; font-size:12px; letter-spacing:.03em; line-height:1.7; color:var(--paper); margin:18px 0 0;}
.inc-source{font-family:'Space Mono',monospace; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:#9a958b; margin:12px 0 0;}

/* archive chips + ledger empty state */
.inc-chip{display:inline-block; font-family:'Space Mono',monospace; font-size:10px; letter-spacing:.1em; text-transform:uppercase; padding:5px 10px; border-radius:999px; border:1px solid var(--line-strong); color:var(--grafite); margin:0 6px 6px 0;}
.inc-chip.ok{color:var(--paper); border-color:var(--paper);}
.inc-chip.win{color:var(--paper); border-color:var(--paper);}
.inc-ledger-empty{border:1px solid var(--line); padding:34px 30px; margin-top:42px;}
.inc-ledger-empty .lg-lead{font-size:16px; line-height:1.6; color:#C9C4BA; margin:0 0 24px; max-width:60ch;}
.inc-ledger-empty .lg-legend-h{font-family:'Space Mono',monospace; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--grafite); margin:0 0 14px;}

/* notify form */
.inc-form{display:flex; flex-direction:column; gap:0;}
.inc-form .field{display:flex; flex-direction:column; gap:10px;}
.inc-form label{font-family:'Space Mono',monospace; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--grafite);}
.inc-form label .stop{color:var(--vermelho);}
.inc-form input{background:var(--ink-2); border:1px solid var(--line-strong); border-radius:0; color:var(--paper); font-family:'Archivo',sans-serif; font-size:16px; padding:16px 18px; width:100%; transition:border-color .25s var(--ease);}
.inc-form input:focus{border-color:var(--vermelho);}
.inc-form .form-note{font-family:'Space Mono',monospace; font-size:11px; letter-spacing:.06em; line-height:1.7; color:var(--grafite); margin-top:16px;}
.inc-benefit{font-family:'Space Mono',monospace; font-size:12px; letter-spacing:.04em; color:#C9C4BA; margin:10px 0 0;}
.inc-sent{display:none; border:1px solid var(--vermelho); padding:24px; align-items:flex-start; gap:14px; margin-top:20px;}
.inc-sent.show{display:flex;}
.inc-sent .dots{font-size:14px; margin-top:5px;}
