
/* Main CSS - lightweight, responsive, accessible */
:root{
  --bg:#0f172a;
  --bg-soft:#111827;
  --fg:#e5e7eb;
  --muted:#9ca3af;
  --brand:#10b981; /* green accent */
  --brand-2:#065f46;
  --card:#0b1220;
  --stroke:#1f2937;
  --shadow:0 10px 30px rgba(0,0,0,.25);
  --radius:1rem;
  --maxw:1100px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, Arial, "Apple Color Emoji","Segoe UI Emoji";
  background:var(--bg);
  color:var(--fg);
  line-height:1.65;
}
a{color:var(--brand); text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%; height:auto; display:block}
.container{max-width:var(--maxw); margin-inline:auto; padding: clamp(16px, 2vw, 24px);}
.grid{display:grid; gap:clamp(16px,2vw,24px)}
.hero{
  background: radial-gradient(1000px 500px at 10% 10%, #0b3d2e33, transparent), url('../img/hero.svg') center/cover no-repeat;
  border-bottom:1px solid var(--stroke);
}
.header{
  position:sticky; top:0; z-index:50; backdrop-filter:saturate(180%) blur(10px);
  background: color-mix(in sRGB, var(--bg) 85%, transparent);
  border-bottom:1px solid var(--stroke);
}
.nav{
  display:flex; align-items:center; gap:18px; justify-content:space-between;
}
.logo{display:flex; gap:10px; align-items:center; font-weight:700}
.badge{font-size:.75rem; color:var(--muted)}
.nav a.btn{padding:.7rem 1rem; background:var(--brand); color:#06120d; font-weight:700; border-radius:.8rem; box-shadow:var(--shadow);}
.nav a.btn:hover{filter:brightness(1.05)}
.main-cta{
  display:grid; grid-template-columns: 1.2fr .8fr; align-items:center; min-height: 62vh;
}
h1{font-size: clamp(2rem, 4vw, 3rem); line-height:1.2; margin:.2em 0 .4em}
h2{font-size: clamp(1.4rem, 2.4vw, 2rem); margin:1.5em 0 .4em}
p.lead{font-size:1.1rem; color:var(--fg); opacity:.95}
.kpis{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:18px}
.card{
  background:linear-gradient(180deg, var(--card), #0c1724);
  border:1px solid var(--stroke);
  border-radius:var(--radius);
  padding:clamp(14px,2vw,20px);
  box-shadow:var(--shadow);
}
ul.clean{list-style:none; padding:0; margin:0; display:grid; gap:8px}
li.row{display:flex; align-items:center; gap:10px}
.icon{width:22px; height:22px; display:inline-block; border-radius:6px; background:var(--brand);}
footer{border-top:1px solid var(--stroke); background:var(--bg-soft); color:var(--muted)}
.footer-cols{display:grid; grid-template-columns: 2fr 1fr 1fr; gap:16px}
small, .muted{color:var(--muted)}
.cta-row{display:flex; gap:12px; flex-wrap:wrap; margin-top:16px}
.btn{display:inline-block; padding:.9rem 1.1rem; border-radius:.8rem; font-weight:700; border:1px solid var(--stroke)}
.btn.primary{background:var(--brand); color:#06120d; box-shadow: var(--shadow);}
.btn.ghost{background:transparent; color:var(--fg)}
.section{padding-block: clamp(28px, 6vw, 64px)}
.table{width:100%; border-collapse:collapse; border:1px solid var(--stroke); border-radius:var(--radius); overflow:hidden}
.table th,.table td{padding:.8rem; border-bottom:1px solid var(--stroke); text-align:left}
.table th{background:#0b1522; color:#d1d5db}
.banner{
  display:flex; align-items:center; justify-content:center; text-align:center;
  padding: 12px; background: #052216; border-bottom:1px solid var(--stroke); color:#a7f3d0
}
.notice{border-left:4px solid var(--brand); padding:.8rem 1rem; background:#062019}
input, textarea, select{
  width:100%; padding:.9rem; background:#0b1522; color:var(--fg); border:1px solid var(--stroke); border-radius:.6rem;
}
label{display:block; margin:.7rem 0 .3rem}
form .actions{display:flex; gap:12px; margin-top:12px}
.responsive-embed{position:relative; padding-top:56.25%}
.responsive-embed iframe{position:absolute; inset:0; width:100%; height:100%; border:0; border-radius:var(--radius)}
.badges{display:flex; gap:8px; flex-wrap:wrap}
.badges span{padding:.2rem .5rem; border:1px solid var(--stroke); border-radius:.5rem; color:#a7f3d0; background:#081a13}
.tag{font-size:.8rem; padding:.1rem .4rem; border:1px solid var(--stroke); border-radius:.4rem; color:#93e6bf}
blockquote{border-left:4px solid var(--brand); padding:.6rem 1rem; background:#081a13; margin:0}
/* Mobile */
@media (max-width: 900px){
  .main-cta{grid-template-columns:1fr}
  .kpis{grid-template-columns:1fr 1fr}
  .footer-cols{grid-template-columns:1fr}
}


/* === Scrollytelling === */
.scrolly-wrap{
  margin: clamp(10px, 2vh, 16px) auto;
  max-width: var(--maxw);
}
.scrolly{
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
.scrolly .sticky{
  position: sticky; top: calc(60px + 8px); /* below header */
  min-height: calc(100vh - 160px);
  border:1px solid var(--stroke);
  border-radius: var(--radius);
  overflow: clip;
  box-shadow: var(--shadow);
  background:#07131d;
}
.sticky .scene{
  position:absolute; inset:0;
  display:grid; grid-template-columns: 1fr;
  place-items: center;
  opacity:0; transform: scale(.985);
  transition: opacity .6s ease, transform .6s ease, background .6s ease;
  background-size: cover; background-position: center;
}
.sticky .scene.active{ opacity:1; transform: scale(1) }
.scene::before{
  content:""; position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,.35), rgba(0,0,0,.55));
}
.scene .inner{
  position:relative; z-index:2; width:min(900px, 92%);
  text-align:center;
  padding: clamp(12px, 2vw, 20px);
  border-radius: calc(var(--radius) - 4px);
  background: color-mix(in sRGB, #06121a 60%, transparent);
  border:1px solid var(--stroke);
  backdrop-filter: blur(4px) saturate(120%);
}
.scene h2{ margin:.2em 0 .3em }
.scene p{ color:var(--fg) }
.scene .points{ display:grid; gap:6px; margin: 8px 0 14px }
.scene .cta{ display:inline-flex; gap:10px; align-items:center }
.scene .cta .btn{ box-shadow: var(--shadow) }

/* Steps list governs scroll snapping (one scroll -> next scene) */
.steps{
  scroll-snap-type: y mandatory;
  max-height: calc(100vh - 160px);
  overflow-y: auto;
  padding: 4px;
  border-radius: var(--radius);
  border:1px dashed var(--stroke);
}
.step{
  height: calc(100vh - 180px);
  scroll-snap-align: start;
}
.step:last-child{ margin-bottom: 2px }

/* Dots indicator */
.scrolly .dots{
  position:absolute; right: 14px; top: 50%; transform: translateY(-50%);
  display:flex; flex-direction:column; gap:8px; z-index:5;
}
.scrolly .dot{
  width:10px; height:10px; border-radius:999px; background:#24404b; border:1px solid #356e62;
  transition: transform .2s ease, background .2s ease;
}
.scrolly .dot.active{ background: var(--brand); transform: scale(1.2) }

@media (max-width: 900px){
  .sticky{ top: calc(56px + 6px) }
  .scene .inner{ width: 96% }
}
