:root{
  --bg:#050505;
  --panel:#0c0c0f;
  --panel-soft:#111116;
  --line:rgba(255,255,255,.1);
  --text:#ffffff;
  --muted:#a5a7ad;
  --soft:#d7d8dc;
  --blue:#2563ff;
}

*{box-sizing:border-box}

html{scroll-behavior:smooth}

body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",Roboto,Arial,sans-serif;
  background:var(--bg);
  color:var(--text);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

a{
  color:inherit;
  text-decoration:none;
}

.nav{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:20;
  width:100%;
  margin:0;
  padding:16px 24px;
  border-bottom:1px solid transparent;
  background:transparent;
  transition:background .28s ease,border-color .28s ease,backdrop-filter .28s ease,box-shadow .28s ease,padding .28s ease;
}

.nav.scrolled{
  padding:12px 24px;
  border-bottom-color:rgba(255,255,255,.08);
  background:rgba(5,5,5,.68);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  box-shadow:0 10px 34px rgba(0,0,0,.16);
}

.navInner{
  width:min(1200px,100%);
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:28px;
}

.navBrand{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-self:start;
  opacity:.95;
}

.navBrand::before{
  content:"";
  position:absolute;
  inset:-42px -58px;
  background:url("assets/Logo/Trueque Logo.png") left center / 180px auto no-repeat;
  opacity:.08;
  filter:blur(34px);
  pointer-events:none;
}

.navBrand img{
  position:relative;
  z-index:1;
  display:block;
  width:auto;
  height:24px;
  object-fit:contain;
}

.nav nav{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:26px;
  color:rgba(215,216,220,.72);
  font-size:13px;
  font-weight:600;
  line-height:1;
}

.nav a,
footer a{
  transition:color .22s ease,opacity .22s ease,background .22s ease,border-color .22s ease,box-shadow .22s ease,transform .22s ease;
}

.nav a:hover,
footer a:hover{
  color:var(--text);
}

.navCta{
  justify-self:end;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:0 16px;
  border:1px solid rgba(122,162,255,.58);
  border-radius:999px;
  color:white;
  background:transparent;
  font-size:13px;
  font-weight:700;
  line-height:1;
  white-space:nowrap;
}

.navCta:hover{
  border-color:rgba(122,162,255,.78);
  background:var(--blue);
  box-shadow:0 12px 34px rgba(37,99,255,.26);
}

.hero{
  position:relative;
  overflow:hidden;
  z-index:1;
  width:100%;
  min-height:100vh;
  margin:0;
  padding:0;
  display:grid;
  place-items:center;
  background:
    radial-gradient(circle at 72% 42%,rgba(37,99,255,.12),transparent 29%),
    radial-gradient(circle at 24% 24%,rgba(14,29,64,.28),transparent 34%),
    linear-gradient(135deg,#010208 0%,#030611 43%,#010102 100%);
}

.hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(ellipse at center,transparent 36%,rgba(0,0,0,.52) 100%),
    linear-gradient(90deg,rgba(0,0,0,.96) 0%,rgba(1,3,10,.78) 40%,rgba(0,0,0,.48) 100%);
  pointer-events:none;
}

.hero::after{
  content:"";
  position:absolute;
  inset:0;
  opacity:.045;
  background-image:
    radial-gradient(circle at 20% 30%,rgba(255,255,255,.9) 0 1px,transparent 1px),
    radial-gradient(circle at 70% 60%,rgba(255,255,255,.75) 0 1px,transparent 1px);
  background-size:34px 34px,47px 47px;
  pointer-events:none;
}

.heroIntro{
  position:relative;
  z-index:1;
  width:100%;
  min-height:100vh;
  overflow:hidden;
}

.heroIntroMedia{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  opacity:0;
  transition:opacity .18s ease;
}

.heroIntroFinal{
  opacity:1;
}

.heroIntro.is-holding-step-one .heroIntroStepOne{
  opacity:1;
  transition:none;
}

.heroIntro.is-step-one .heroIntroStepOne,
.heroIntro.is-step-two .heroIntroStepTwo,
.intro-sequence .heroIntro:not(.is-complete):not(.is-step-two) .heroIntroStepOne{
  opacity:1;
}

.heroIntro.is-step-one .heroIntroFinal,
.heroIntro.is-step-two .heroIntroFinal,
.heroIntro.is-holding-step-one .heroIntroFinal,
.intro-sequence .heroIntro:not(.is-complete):not(.is-step-two) .heroIntroFinal{
  opacity:0;
}

.heroIntro.is-complete .heroIntroStep{
  display:none;
}

h1,
h2,
h3,
p{
  margin-top:0;
}

h1{
  max-width:560px;
  margin-bottom:22px;
  font-size:clamp(52px,6.5vw,96px);
  line-height:.92;
  letter-spacing:0;
}

.section{
  position:relative;
  z-index:1;
  width:min(1120px,calc(100% - 40px));
  margin:0 auto 128px;
  padding:0;
}

#how{
  scroll-margin-top:96px;
}

.transitionIntro{
  position:relative;
  z-index:1;
  width:min(920px,calc(100% - 40px));
  margin:120px auto 100px;
  text-align:center;
}

.transitionIntro h2{
  margin:0 0 24px;
  color:#fff;
  font-size:clamp(52px,5.4vw,64px);
  font-weight:700;
  line-height:1.02;
  letter-spacing:-.015em;
}

.transitionIntro p{
  max-width:700px;
  margin:0 auto;
  color:rgba(255,255,255,.72);
  font-size:clamp(22px,2.1vw,26px);
  font-weight:400;
  line-height:1.45;
}

.how{
  width:min(1180px,calc(100% - 40px));
  min-height:0;
  margin:0 auto 128px;
  padding:22px 56px 26px;
  border:1px solid rgba(37,99,255,.32);
  border-radius:28px;
  background:#111827;
  color:var(--text);
  box-shadow:0 0 0 1px rgba(122,162,255,.03),0 24px 72px rgba(37,99,255,.12);
}

.howHeader{
  width:80%;
  max-width:900px;
  margin:0 auto 12px;
  text-align:center;
}

.how .howHeader h2{
  margin-bottom:0;
  color:var(--text);
  font-size:clamp(27px,2.6vw,36px);
  font-weight:800;
  line-height:1.03;
  white-space:nowrap;
}

.section h2{
  margin-bottom:18px;
  font-size:clamp(40px,6vw,76px);
  line-height:.98;
  letter-spacing:0;
}

.section p{
  margin-bottom:0;
  color:var(--muted);
  font-size:clamp(18px,2vw,22px);
  line-height:1.42;
}

.grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}

article{
  min-height:260px;
  padding:28px;
  border:1px solid var(--line);
  border-radius:8px;
  background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.035));
  transition:transform .24s ease,border-color .24s ease,background .24s ease;
}

article:hover{
  transform:translateY(-4px);
  border-color:rgba(255,255,255,.2);
  background:linear-gradient(180deg,rgba(255,255,255,.095),rgba(255,255,255,.045));
}

article span{
  display:block;
  margin-bottom:58px;
  font-size:26px;
}

article h3{
  max-width:260px;
  margin-bottom:10px;
  font-size:25px;
  line-height:1.08;
}

article p{
  font-size:17px;
  line-height:1.45;
}

.how .grid{
  position:relative;
  width:68%;
  max-width:760px;
  margin:0 auto;
  align-items:stretch;
  gap:18px;
}

.how .grid::before{
  content:"";
  position:absolute;
  top:39px;
  left:calc(16.666% + 18px);
  right:calc(16.666% + 18px);
  z-index:0;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(37,99,255,.72) 10%,rgba(122,162,255,.72) 50%,rgba(37,99,255,.72) 90%,transparent);
  pointer-events:none;
}

.how article{
  position:relative;
  z-index:1;
  height:128px;
  min-height:128px;
  padding:22px 24px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:20px;
  background:#172033;
  box-shadow:0 14px 34px rgba(0,0,0,.18);
}

.how article:hover{
  border-color:rgba(122,162,255,.28);
  background:#1a253a;
  box-shadow:0 16px 38px rgba(0,0,0,.2);
}

.how article:not(:last-child)::after{
  content:none;
}

.stepTitle{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:12px;
  transform:none;
}

.how article span{
  position:relative;
  z-index:1;
  display:inline-grid;
  place-items:center;
  flex:0 0 auto;
  width:26px;
  height:26px;
  margin-bottom:0;
  border:1px solid rgba(122,162,255,.65);
  border-radius:999px;
  background:linear-gradient(135deg,#2563ff,#7aa2ff);
  color:white;
  font-size:12px;
  font-weight:900;
  letter-spacing:.03em;
  box-shadow:0 0 0 5px #172033,0 8px 18px rgba(37,99,255,.32);
}

.how article h3{
  margin-bottom:0;
  color:var(--text);
  font-size:22px;
  white-space:nowrap;
}

.how article p{
  color:#c3cad8;
  font-size:15px;
  line-height:1.35;
  white-space:nowrap;
  transform:none;
}

.dark,
.safety{
  width:min(1180px,calc(100% - 40px));
  margin:0 auto 128px;
  padding:56px;
  border:1px solid var(--line);
  border-radius:32px;
  background:var(--panel);
  box-shadow:0 18px 52px rgba(0,0,0,.24);
}

.dark{
  overflow:hidden;
  min-height:0;
  padding:48px 56px 52px;
  border-color:rgba(255,255,255,.1);
  background:#17181C;
  box-shadow:0 0 0 1px rgba(255,255,255,.025),0 22px 64px rgba(37,99,255,.08);
}

.dark::before{
  content:"";
  position:absolute;
  left:50%;
  bottom:22px;
  width:min(760px,75%);
  height:180px;
  background:radial-gradient(ellipse at center,rgba(37,99,255,.08),rgba(37,99,255,.032) 38%,transparent 72%);
  transform:translateX(-50%);
  pointer-events:none;
}

.dark h2,
.safety h2{
  margin-bottom:36px;
}

.dark h2{
  position:relative;
  z-index:1;
  margin-bottom:28px;
  color:var(--text);
  font-size:clamp(38px,5vw,64px);
  font-weight:800;
  line-height:1;
}

.dark .grid{
  position:relative;
  z-index:1;
  gap:18px;
}

.dark article{
  position:relative;
  min-height:168px;
  padding:26px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:20px;
  background:linear-gradient(145deg,#23252B,#202228 48%,#1f2025);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 12px 28px rgba(0,0,0,.14);
  overflow:hidden;
  transition:transform .24s ease,border-color .24s ease,background .24s ease,box-shadow .24s ease;
}

.dark article::before{
  content:"";
  position:absolute;
  inset:1px;
  border-radius:19px;
  border:1px solid rgba(255,255,255,.045);
  pointer-events:none;
}

.dark article:hover{
  transform:translateY(-4px);
  border-color:rgba(122,162,255,.34);
  background:linear-gradient(145deg,#252832,#22252d 48%,#202229);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 16px 34px rgba(0,0,0,.18);
}

.cardIcon{
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  margin-bottom:18px;
  border:1px solid rgba(122,162,255,.2);
  border-radius:12px;
  background:rgba(37,99,255,.1);
  color:#7aa2ff;
  box-shadow:0 0 24px rgba(37,99,255,.16),inset 0 1px 0 rgba(255,255,255,.06);
  transition:box-shadow .24s ease,border-color .24s ease,background .24s ease;
}

.dark article:hover .cardIcon{
  border-color:rgba(122,162,255,.38);
  background:rgba(37,99,255,.16);
  box-shadow:0 0 32px rgba(37,99,255,.28),inset 0 1px 0 rgba(255,255,255,.08);
}

.cardIcon svg{
  width:21px;
  height:21px;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.dark article h3{
  margin-bottom:10px;
  color:var(--text);
  font-size:24px;
  line-height:1.1;
}

.dark article p{
  color:#c3cad8;
  font-size:17px;
  line-height:1.45;
}

.safety{
  min-height:430px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.faq{
  width:min(1180px,calc(100% - 40px));
  margin:0 auto 128px;
  padding:56px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:32px;
  background:#0c0c0f;
  box-shadow:0 18px 52px rgba(0,0,0,.2);
}

.faq h2{
  margin-bottom:28px;
  color:var(--text);
  font-size:clamp(38px,5vw,64px);
  font-weight:800;
  line-height:1;
}

.faqList{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}

.faq article{
  min-height:150px;
  padding:24px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:20px;
  background:linear-gradient(145deg,#17181C,#121318);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 12px 28px rgba(0,0,0,.14);
}

.faq article h3{
  margin-bottom:10px;
  color:var(--text);
  font-size:20px;
  line-height:1.15;
}

.faq article p{
  color:#c3cad8;
  font-size:16px;
  line-height:1.45;
}

.wide{
  max-width:760px;
}

footer{
  position:relative;
  z-index:1;
  width:min(1120px,calc(100% - 40px));
  margin:0 auto;
  padding:28px 0 36px;
  border-top:1px solid rgba(255,255,255,.08);
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:28px;
  color:var(--muted);
}

.footerBrand{
  display:flex;
  align-items:center;
}

.footerBrand img{
  display:block;
  width:auto;
  height:24px;
  object-fit:contain;
}

.footerLinks{
  display:flex;
  align-items:center;
  gap:18px;
  flex-wrap:wrap;
  font-size:13px;
  font-weight:500;
  color:rgba(215,216,220,.62);
}

.footerLinks a{
  line-height:1;
}

.legal{
  position:relative;
  z-index:1;
  width:min(850px,calc(100% - 40px));
  margin:60px auto;
  padding:44px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--panel);
  color:var(--soft);
  line-height:1.7;
}

.legal h1{
  color:white;
  font-size:42px;
  line-height:1.1;
}

.legal h2{
  margin-top:32px;
  color:white;
}

.js .reveal{
  opacity:0;
  transform:translateY(18px);
  transition:opacity .7s ease,transform .7s ease;
}

.js .reveal.visible{
  opacity:1;
  transform:none;
}

.js .transitionIntro h2,
.js .transitionIntro p{
  opacity:0;
  transform:translateY(20px);
  transition:opacity 700ms ease,transform 700ms ease;
}

.js .transitionIntro p{
  transition-delay:150ms;
}

.js .transitionIntro.visible h2,
.js .transitionIntro.visible p{
  opacity:1;
  transform:none;
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}

  *,
  *::before,
  *::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    scroll-behavior:auto!important;
    transition-duration:.001ms!important;
  }
}

@media(max-width:900px){
  .nav{
    padding:14px 16px;
  }

  .nav.scrolled{
    padding:11px 16px;
  }

  .navInner{
    grid-template-columns:auto 1fr auto;
    gap:18px;
  }

  .navBrand img{
    height:22px;
  }

  .nav nav{
    justify-content:flex-start;
    gap:15px;
    overflow-x:auto;
    scrollbar-width:none;
  }

  .nav nav::-webkit-scrollbar{
    display:none;
  }

  .navCta{
    min-height:34px;
    padding:0 13px;
  }

  .hero{
    width:100%;
    min-height:100vh;
    padding:0;
  }

  .section{
    width:min(100% - 32px,680px);
    margin-bottom:128px;
    padding:0;
  }

  .transitionIntro{
    width:min(100% - 32px,680px);
    margin:110px auto 92px;
  }

  .how{
    width:min(100% - 32px,680px);
    min-height:auto;
    margin:0 auto 128px;
    padding:28px 34px 32px;
    border-radius:24px;
  }

  .howHeader,
  .how .grid{
    width:100%;
    max-width:none;
  }

  .dark,
  .safety,
  .faq{
    width:min(100% - 32px,680px);
    min-height:auto;
    margin:0 auto 128px;
    padding:34px;
    border-radius:24px;
  }

  .grid{
    grid-template-columns:1fr;
  }

  .faqList{
    grid-template-columns:1fr;
  }

  .how .grid{
    gap:18px;
  }

  .how .grid::before{
    top:58px;
    bottom:58px;
    left:47px;
    right:auto;
    width:1px;
    height:auto;
    background:linear-gradient(180deg,transparent,rgba(37,99,255,.72) 10%,rgba(122,162,255,.72) 50%,rgba(37,99,255,.72) 90%,transparent);
  }

  .how article:not(:last-child)::after{
    content:none;
  }

  .how article{
    height:122px;
    min-height:122px;
  }

  article{
    min-height:220px;
  }

  .dark article{
    min-height:150px;
  }

  article span{
    margin-bottom:42px;
  }

  footer{
    width:min(100% - 32px,680px);
    align-items:flex-start;
    flex-direction:column;
    gap:18px;
  }

  .footerLinks{
    gap:16px;
  }
}

@media(max-width:620px){
  .hero{
    padding:0;
  }

  .nav{
    padding:12px 14px;
  }

  .nav.scrolled{
    padding:10px 14px;
  }

  .navInner{
    grid-template-columns:1fr auto;
    gap:14px;
  }

  .nav nav{
    grid-column:1 / -1;
    grid-row:2;
    width:100%;
    justify-content:flex-start;
    gap:16px;
    font-size:12px;
  }

  .navBrand img{
    height:21px;
  }

  .navCta{
    min-height:32px;
    padding:0 12px;
    font-size:12px;
  }

  h1{
    font-size:clamp(48px,14vw,58px);
  }

  .section h2{
    font-size:44px;
  }

  .transitionIntro{
    margin:92px auto 78px;
  }

  .transitionIntro h2{
    font-size:clamp(40px,10vw,52px);
  }

  .transitionIntro p{
    font-size:20px;
  }

  .how{
    padding:24px 24px 28px;
    border-radius:24px;
    margin:0 auto 120px;
  }

  .dark,
  .safety,
  .faq{
    padding:28px;
    border-radius:24px;
    margin:0 auto 120px;
  }

  .howHeader{
    margin-bottom:14px;
  }

  .how h2{
    font-size:clamp(27px,8vw,30px);
  }

  .how article{
    height:120px;
    min-height:120px;
    padding:22px 24px;
  }

  .dark article{
    min-height:142px;
    padding:24px;
  }

  .how article span{
    margin-bottom:0;
  }

  .legal{
    padding:28px;
  }
}
