/* ==========================================================
   RochaTech — Design tokens
   Paleta: preto, branco e o dourado da logo (extraído do arquivo
   enviado — degradê entre #AA7724 e #E3B253; usamos o tom médio
   como acento sólido).
     --ink        #0A0A0A  preto (quase puro, levemente suavizado)
     --paper      #FFFFFF  branco puro
     --paper-2    #F2F2F2  cinza neutro claro (cards/seções alternadas)
     --brand      #B8862E  dourado da marca — usado como ACENTO
                            (botões, ícones, detalhes), não em blocos
                            grandes — em área grande o dourado perde
                            contraste com texto e fica "gritante".
     --brand-2    #8C6420  dourado mais escuro, para hover/estado ativo
     --signal     #2E9E6B  verde — cor FUNCIONAL de status "ok" (não é
                            cor de marca, é semântica, como em qualquer
                            painel de monitoramento)
     --amber      #B8863A  âmbar — cor FUNCIONAL de status "atenção"
     --line       rgba(10,10,10,0.10)  divisores
   Tipografia:
     Display  -> 'Space Grotesk' (títulos, caráter técnico/desenhado)
     Corpo    -> 'Inter' (leitura)
     Dados    -> 'IBM Plex Mono' (números, status, labels técnicos)
   ========================================================== */

:root{
  --ink: #0A0A0A;
  --ink-soft: #46484B;
  --paper: #FFFFFF;
  --paper-2: #F2F2F2;
  --white: #FFFFFF;
  --brand: #B8862E;
  --brand-2: #8C6420;
  --brand-deep: #6B4A16;
  --signal: #2E9E6B;
  --amber: #B8863A;
  --line: rgba(10,10,10,0.10);
  --line-dark: rgba(255,255,255,0.14);

  --font-display: 'Space Grotesk', 'Inter', sans-serif;
  --font-body: 'Inter', -apple-system, sans-serif;
  --font-mono: 'IBM Plex Mono', 'SFMono-Regular', monospace;

  --radius: 10px;
  --radius-sm: 6px;
  --wrap: 1180px;
  --shadow-1: 0 1px 2px rgba(16,21,28,0.06), 0 8px 24px -12px rgba(16,21,28,0.18);
}

*,*::before,*::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  *,*::before,*::after{ animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
}

body{
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

h1,h2,h3{
  font-family: var(--font-display);
  color: var(--ink);
  line-height: 1.12;
  margin: 0 0 0.5em;
  letter-spacing: -0.01em;
}
h1{ font-size: clamp(2.4rem, 4.6vw, 3.6rem); font-weight: 600; }
h2{ font-size: clamp(1.7rem, 3vw, 2.35rem); font-weight: 600; }
h3{ font-size: 1.15rem; font-weight: 600; }
p{ margin: 0 0 1em; color: var(--ink-soft); }
a{ color: inherit; }
ul,ol{ margin:0; padding:0; list-style:none; }

.wrap{ max-width: var(--wrap); margin: 0 auto; padding: 0 24px; }

.skip-link{
  position:absolute; left:-999px; top: 0; background: var(--ink); color: var(--paper);
  padding: 10px 16px; z-index: 999; border-radius: 0 0 8px 0; font-family: var(--font-mono); font-size: 0.85rem;
}
.skip-link:focus{ left: 0; }

:focus-visible{ outline: 2px solid var(--brand); outline-offset: 3px; }

.eyebrow{
  font-family: var(--font-mono);
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--brand-2);
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 14px;
}
.accent-text{ color: var(--brand); }

.dot{ width: 7px; height: 7px; border-radius: 50%; display:inline-block; background: var(--signal); }
.dot-live{ box-shadow: 0 0 0 3px rgba(76,175,148,0.18); animation: pulse 2.4s ease-in-out infinite; }
@keyframes pulse{ 0%,100%{ opacity:1; } 50%{ opacity:0.45; } }

/* ---------- Buttons ---------- */
.btn{
  display: inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family: var(--font-body); font-weight: 600; font-size: 0.95rem;
  padding: 13px 24px; border-radius: var(--radius-sm);
  text-decoration:none; border: 1.5px solid transparent; cursor:pointer;
  transition: transform 0.15s ease, background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.btn:hover{ transform: translateY(-1px); }
.btn-primary{ background: var(--brand); color: var(--ink); }
.btn-primary:hover{ background: var(--brand-2); }
.btn-outline{ background: transparent; border-color: var(--ink); color: var(--ink); }
.btn-outline:hover{ background: var(--ink); color: var(--paper); }
.btn-ghost{ background: transparent; border-color: transparent; color: var(--ink); padding: 10px 16px; }
.btn-ghost:hover{ background: var(--paper-2); }
.btn-lg{ padding: 16px 32px; font-size: 1.02rem; }

/* ============ HEADER ============ */
.site-header{
  position: sticky; top:0; z-index: 100;
  background: rgba(255,255,255,0.86);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  height: 76px;
}
.brand{ display:flex; align-items:center; gap:10px; text-decoration:none; color: var(--ink); }
.brand-logo{ height: 32px; width: auto; display: block; }
.brand-footer .brand-logo{ height: 26px; }

.main-nav{ display:flex; gap: 32px; }
.main-nav a{
  text-decoration:none; color: var(--ink-soft); font-size: 0.94rem; font-weight: 500;
  position: relative; padding: 4px 0;
}
.main-nav a:hover{ color: var(--ink); }
.main-nav a::after{
  content:""; position:absolute; left:0; bottom:-3px; width:0; height:1.5px; background: var(--brand);
  transition: width 0.2s ease;
}
.main-nav a:hover::after{ width: 100%; }

.header-actions{ display:flex; align-items:center; gap:10px; }
.header-whats{ display:none; }
@media (min-width: 760px){ .header-whats{ display:inline-flex; } }

.nav-toggle{
  display:flex; flex-direction:column; justify-content:center; gap:5px;
  width: 40px; height:40px; background:none; border:1px solid var(--line); border-radius: var(--radius-sm); cursor:pointer;
}
.nav-toggle span{ width: 18px; height: 1.6px; background: var(--ink); margin:0 auto; transition: transform 0.2s ease, opacity 0.2s ease; }
.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform: translateY(6.6px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity: 0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3){ transform: translateY(-6.6px) rotate(-45deg); }
@media (min-width: 900px){ .nav-toggle{ display:none; } }

@media (max-width: 899px){
  .main-nav{
    position: absolute; top: 76px; left:0; right:0;
    background: var(--paper); border-bottom: 1px solid var(--line);
    flex-direction: column; gap: 0; padding: 8px 24px 18px;
    display: none;
  }
  .main-nav.open{ display:flex; }
  .main-nav a{ padding: 12px 0; border-bottom: 1px solid var(--line); }
}

/* ============ HERO ============ */
.hero{ padding: 76px 0 0; overflow: hidden; }
.hero-grid{
  display:grid; grid-template-columns: 1.05fr 0.95fr; gap: 56px; align-items:center;
  padding-bottom: 56px;
}
@media (max-width: 980px){ .hero-grid{ grid-template-columns: 1fr; } }

.hero-lede{ font-size: 1.1rem; max-width: 46ch; }
.hero-cta{ display:flex; gap:14px; flex-wrap:wrap; margin: 28px 0 8px; }

/* Faixa de estatísticas — largura total do hero */
.stat-strip{
  display:flex; justify-content: space-between; gap: 32px; margin:0;
  padding: 28px 0 40px; border-top: 1px solid var(--line); flex-wrap: wrap;
}
.stat-strip dt{ font-family: var(--font-mono); font-size: 0.72rem; text-transform:uppercase; letter-spacing:0.05em; color: var(--ink-soft); margin-bottom: 4px; }
.stat-strip dd{ margin:0; font-family: var(--font-display); font-size: 1.3rem; font-weight: 600; color: var(--ink); }
@media (max-width: 640px){ .stat-strip{ justify-content: flex-start; gap: 40px; } }

/* Título do hero — segunda linha entra com movimento */
#heroLine2{
  display: inline-block;
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.75s cubic-bezier(0.16,1,0.3,1), transform 0.75s cubic-bezier(0.16,1,0.3,1);
}
#heroLine2.is-in{ opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce){
  #heroLine2{ opacity:1; transform:none; transition:none; }
}

/* Console — signature element */
.console{
  background: var(--ink);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: var(--shadow-1);
  border: 1px solid rgba(255,255,255,0.06);
}
.console-bar{
  display:flex; align-items:center; gap:8px;
  padding: 12px 16px; background: rgba(255,255,255,0.03);
  border-bottom: 1px solid var(--line-dark);
}
.console-dot{ width:9px; height:9px; border-radius:50%; }
.console-dot.red{ background:#E5605A; } .console-dot.yellow{ background:#E3B341; } .console-dot.green{ background:#4CAF94; }
.console-title{ margin-left: 8px; font-family: var(--font-mono); font-size: 0.76rem; color: rgba(255,255,255,0.5); }

.console-body{
  padding: 18px 18px 8px;
  font-family: var(--font-mono); font-size: 0.82rem; line-height: 1.9;
  color: rgba(255,255,255,0.82);
  min-height: 230px;
}
.console-line{ display:flex; gap: 10px; opacity: 0; animation: lineIn 0.4s ease forwards; }
.console-line .t{ color: rgba(255,255,255,0.35); flex-shrink:0; }
.console-line .status{ font-weight:600; }
.console-line .status.ok{ color: var(--signal); }
.console-line .status.warn{ color: var(--amber); }
@keyframes lineIn{ from{ opacity:0; transform: translateY(3px);} to{ opacity:1; transform: translateY(0);} }

.console-footer{
  display:flex; align-items:center; justify-content:space-between;
  padding: 12px 18px; border-top: 1px solid var(--line-dark);
  font-family: var(--font-mono); font-size: 0.74rem; color: rgba(255,255,255,0.55);
}
.console-footer span{ display:flex; align-items:center; gap:6px; }

/* ============ STACK BAR ============ */
.stack-bar{ padding: 30px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.stack-label{ font-family: var(--font-mono); font-size: 0.74rem; text-transform:uppercase; letter-spacing:0.05em; color: var(--ink-soft); margin: 0 0 16px; text-align:center; }
.stack-chips{ display:flex; flex-wrap:wrap; gap: 10px; justify-content:center; }
.stack-chips li{
  font-family: var(--font-mono); font-size: 0.8rem; color: var(--ink-soft);
  border: 1px solid var(--line); border-radius: 999px; padding: 6px 14px;
}

/* ============ SECTION HEAD ============ */
.section-head{ max-width: 640px; margin-bottom: 48px; }
.section-sub{ font-size: 1.02rem; }
.br-desktop{ display:none; }
@media (min-width: 700px){ .br-desktop{ display:inline; } }

section{ padding: 96px 0; }

/* ============ PILLARS ============ */
.pillar-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
@media (max-width: 860px){ .pillar-grid{ grid-template-columns: 1fr; } }
.pillar-card{
  background: var(--white); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 32px; transition: border-color 0.2s ease, transform 0.2s ease;
}
.pillar-card:hover{ border-color: var(--brand); transform: translateY(-2px); }
.pillar-icon{ color: var(--brand); display:block; width:40px; height:40px; margin-bottom: 18px; }
.pillar-icon svg{ width:100%; height:100%; }
.pillar-card h3{ margin-bottom: 8px; }
.pillar-card p{ margin:0; font-size: 0.96rem; }

/* ============ SERVICES ============ */
.services{ background: var(--paper-2); }
.service-accordion{ border-top: 1px solid var(--line); }
.service-item{ border-bottom: 1px solid var(--line); }
.service-item summary{
  display:flex; align-items:center; gap: 20px; padding: 22px 4px;
  cursor:pointer; list-style:none;
}
.service-item summary::-webkit-details-marker{ display:none; }
.service-num{ font-family: var(--font-mono); font-size: 0.85rem; color: var(--brand-2); width: 26px; flex-shrink:0; }
.service-title{ font-family: var(--font-display); font-size: 1.15rem; font-weight: 600; flex:1; }
.service-toggle{ width: 20px; height:20px; position: relative; flex-shrink:0; }
.service-toggle::before, .service-toggle::after{
  content:""; position:absolute; background: var(--ink); border-radius: 2px;
}
.service-toggle::before{ width: 14px; height: 1.6px; top: 9px; left:3px; }
.service-toggle::after{ width: 1.6px; height: 14px; top:3px; left:9px; transition: transform 0.2s ease; }
.service-item[open] .service-toggle::after{ transform: rotate(90deg); opacity:0; }

.service-content{ padding: 0 4px 26px 46px; max-width: 640px; }
.service-content p{ margin-bottom: 12px; }
.service-content ul li{
  position: relative; padding-left: 18px; margin-bottom: 8px; font-size: 0.95rem; color: var(--ink-soft);
}
.service-content ul li::before{
  content:""; position:absolute; left:0; top: 9px; width: 6px; height:6px; background: var(--brand); border-radius:1px;
}

.services-cta{
  margin-top: 44px; padding-top: 32px; border-top: 1px solid var(--line);
  display:flex; align-items:center; justify-content:space-between; gap: 20px; flex-wrap:wrap;
}
.services-cta p{ margin:0; font-family: var(--font-display); font-size: 1.1rem; color: var(--ink); }

/* ============ PROCESS ============ */
.process-steps{
  display:grid; grid-template-columns: repeat(3, 1fr); gap: 40px;
  counter-reset: step;
}
@media (max-width: 860px){ .process-steps{ grid-template-columns: 1fr; gap: 32px; } }
.process-steps li{ position:relative; padding-top: 20px; border-top: 2px solid var(--brand); }
.step-index{ font-family: var(--font-mono); font-size: 0.85rem; color: var(--brand-2); display:block; margin-bottom: 14px; }
.process-steps h3{ margin-bottom: 8px; }
.process-steps p{ margin:0; font-size: 0.96rem; }

/* ============ MATURITY (Raio-X / Camadas / Programa) ============
   Paleta local desta seção: grafite profundo + azul institucional +
   verde de status discreto + branco. Escopo isolado em .maturity para
   não vazar para o resto do site. */
.maturity{
  background: var(--mat-paper);
  --mat-ink: #1F2933;
  --mat-ink-2: #16222E;
  --mat-blue: #2C4A6E;
  --mat-blue-light: #3D5A80;
  --mat-green: #2E9E6B;
  --mat-paper: #F5F7FA;
  --mat-paper-2: #E9EEF3;
  --mat-line: rgba(31,41,51,0.14);
}
.maturity .eyebrow{ color: var(--mat-blue); }
.maturity .section-sub{ max-width: 62ch; }

/* ---- Raio-X (entrada) ---- */
.raiox{
  position: relative;
  background: var(--white);
  border: 1.5px solid var(--mat-ink);
  border-radius: var(--radius);
  padding: 44px 40px 36px;
  margin-bottom: 56px;
}
.raiox-seal{
  position:absolute; top:-14px; left: 40px;
  background: var(--mat-ink); color: var(--white);
  font-family: var(--font-mono); font-size: 0.7rem; text-transform:uppercase; letter-spacing:0.05em;
  padding: 6px 14px; border-radius: 999px;
}
.raiox-grid{ display:grid; grid-template-columns: 1.3fr 1fr; gap: 44px; margin-bottom: 28px; }
@media (max-width: 860px){ .raiox-grid{ grid-template-columns: 1fr; gap: 24px; } }
.raiox-copy h3{ font-size: 1.35rem; }
.raiox-points{ display:flex; flex-direction:column; gap: 14px; align-self:center; }
.raiox-points li{
  position:relative; padding-left: 24px; font-size: 0.94rem; color: var(--ink-soft);
  border-bottom: 1px solid var(--mat-line); padding-bottom: 14px;
}
.raiox-points li:last-child{ border-bottom:none; padding-bottom:0; }
.raiox-points li::before{ content:"✓"; position:absolute; left:0; top:0; color: var(--mat-green); font-weight:700; }

/* ---- Escada de maturidade ---- */
.ladder{ position: relative; padding-left: 26px; }
.ladder-spine{
  position:absolute; left: 10px; top: 10px; bottom: 10px; width: 2px;
  background: var(--mat-line);
}
.layer{
  position:relative; background: var(--mat-paper-2); border: 1px solid var(--mat-line);
  border-radius: var(--radius); padding: 34px 36px; margin-left: 0;
}
.layer-2{ margin-left: 5%; background: #DFE7EE; }
.layer-3{ margin-left: 10%; background: var(--mat-ink); border-color: var(--mat-ink); }
@media (max-width: 760px){ .layer-2, .layer-3{ margin-left: 0; } }

.layer + .layer{ margin-top: 44px; }
.layer-head{ display:flex; gap: 18px; align-items:flex-start; margin-bottom: 14px; }
.layer-marker{
  flex-shrink:0; width: 40px; height:40px; border-radius:50%;
  background: var(--mat-blue); color: var(--white);
  display:flex; align-items:center; justify-content:center;
  font-family: var(--font-mono); font-size: 0.85rem; font-weight:600;
  margin-left: -46px;
}
.layer-question{ font-style: italic; color: var(--ink-soft); font-size: 0.92rem; margin: 0 0 4px; }
.layer h3{ margin: 0; font-size: 1.3rem; }
.layer-position{ font-size: 0.95rem; margin-bottom: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--mat-line); }
.layer-scope{ margin: 0 0 26px; display:flex; flex-direction:column; gap: 11px; }
.layer-scope li{ position:relative; padding-left: 22px; font-size: 0.94rem; color: var(--ink-soft); }
.layer-scope li::before{ content:""; position:absolute; left:0; top:8px; width:7px; height:7px; border-radius:50%; background: var(--mat-blue); }

.layer-3 .layer-question,
.layer-3 .layer-position,
.layer-3 .layer-scope li{ color: rgba(255,255,255,0.72); }
.layer-3 h3{ color: var(--white); }
.layer-3 .layer-position{ border-color: var(--line-dark); }
.layer-3 .layer-scope li::before{ background: var(--mat-green); }
.layer-3 .layer-marker{ background: var(--mat-green); }
.layer-3 .btn-outline{ border-color: var(--white); color: var(--white); }
.layer-3 .btn-outline:hover{ background: var(--white); color: var(--mat-ink); }

.ladder-plus{
  width: 34px; height:34px; margin: -6px 0 -6px 4px; position:relative; z-index:1;
  background: var(--mat-paper); border: 2px solid var(--mat-blue); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-family: var(--font-mono); color: var(--mat-blue); font-weight:700;
}

/* ---- Programa Integrado ---- */
.program{
  margin-top: 56px; background: var(--mat-ink-2); border-radius: var(--radius);
  padding: 52px 48px; box-shadow: var(--shadow-1);
  border-top: 4px solid var(--mat-green);
}
.program .eyebrow{ color: var(--mat-green); }
.program h3{ color: var(--white); font-size: 1.6rem; max-width: 26ch; }
.program p{ color: rgba(255,255,255,0.72); max-width: 62ch; }
.program-points{ display:flex; flex-direction:column; gap: 10px; margin: 20px 0 30px; }
.program-points li{ position:relative; padding-left: 22px; color: rgba(255,255,255,0.85); font-size: 0.95rem; }
.program-points li::before{ content:"✓"; position:absolute; left:0; color: var(--mat-green); font-weight:700; }
.program .btn-primary{ background: var(--mat-green); color: var(--mat-ink); }
.program .btn-primary:hover{ background: #3DBE8E; }

/* ---- Linha de compromisso ---- */
.commitments{
  display:grid; grid-template-columns: repeat(4, 1fr); gap: 0;
  margin-top: 56px; border-top: 1px solid var(--mat-line); border-bottom: 1px solid var(--mat-line);
}
@media (max-width: 860px){ .commitments{ grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px){ .commitments{ grid-template-columns: 1fr; } }
.commitments li{
  padding: 26px 24px; border-left: 1px solid var(--mat-line); font-size: 0.88rem; color: var(--ink-soft);
}
.commitments li:first-child{ border-left:none; }
.commitments li span{ display:block; font-family: var(--font-display); font-weight:600; color: var(--mat-ink); font-size: 0.98rem; margin-bottom: 6px; }

/* ---- Quem atendemos ---- */
.who{ margin-top: 56px; max-width: 68ch; }
.who h3{ font-size: 1.3rem; }

/* ---- FAQ da seção (reaproveita .service-item global) ---- */
.maturity-faq{ margin-top: 40px; border-top: 1px solid var(--mat-line); }
.maturity-faq .service-item{ border-bottom: 1px solid var(--mat-line); }
.maturity-faq .service-title{ font-size: 1.02rem; }
.maturity-faq .service-content{ padding-left: 4px; max-width: 62ch; }
.maturity-faq .service-content p{ margin:0; }

/* ============ ABOUT ============ */
.about-grid{ display:grid; grid-template-columns: 1.2fr 0.8fr; gap: 56px; align-items:center; }
@media (max-width: 900px){ .about-grid{ grid-template-columns: 1fr; } }
.about-stats{ display:grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.about-stats > div{ background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 20px; }
.about-stats dt{ font-family: var(--font-mono); font-size: 0.7rem; text-transform:uppercase; color: var(--ink-soft); margin-bottom: 6px; }
.about-stats dd{ margin:0; font-family: var(--font-display); font-size: 1.05rem; font-weight: 600; }

/* ============ FINAL CTA ============ */
.final-cta{ background: var(--ink); }
.final-cta-inner{ text-align:center; max-width: 640px; }
.final-cta h2{ color: var(--paper); }
.final-cta p{ color: rgba(255,255,255,0.75); font-size: 1.05rem; margin-bottom: 30px; }

/* ============ CONTACT ============ */
.contact-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items:start; }
@media (max-width: 900px){ .contact-grid{ grid-template-columns: 1fr; } }

.contact-form{ background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 32px; }
.form-row{ margin-bottom: 18px; }
.form-row label{ display:block; font-size: 0.85rem; font-weight: 600; margin-bottom: 6px; }
.form-row input, .form-row textarea{
  width:100%; border: 1.5px solid var(--line); border-radius: var(--radius-sm);
  padding: 11px 13px; font-family: var(--font-body); font-size: 0.95rem; background: var(--paper);
  resize: vertical;
}
.form-row input:focus, .form-row textarea:focus{ outline:none; border-color: var(--brand); }
.form-note{ font-size: 0.8rem; color: var(--ink-soft); margin: 12px 0 0; }

/* ============ FOOTER ============ */
.site-footer{ border-top: 1px solid var(--line); padding: 40px 0; }
.footer-inner{ display:flex; align-items:center; justify-content:space-between; gap: 20px; flex-wrap:wrap; }
.footer-nav{ display:flex; gap: 22px; flex-wrap:wrap; }
.footer-nav a{ text-decoration:none; color: var(--ink-soft); font-size: 0.88rem; }
.footer-nav a:hover{ color: var(--ink); }
.footer-copy{ margin:0; font-size: 0.82rem; color: var(--ink-soft); width:100%; order:3; padding-top: 20px; border-top: 1px solid var(--line); font-family: var(--font-mono); }

/* ============ SCROLL REVEAL ============ */
[data-reveal]{ opacity: 0; transform: translateY(16px); transition: opacity 0.6s ease, transform 0.6s ease; }
[data-reveal].is-visible{ opacity: 1; transform: translateY(0); }
