*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  /* Hueso + tinta oscura + 1 acento azul tinta */
  --bone:#F4F1EA;
  --bone-2:#EAE5DA;
  --ink:#0E1B2E;
  --ink-soft:#3B4A60;
  --ink-mute:#7A8494;
  --rule:rgba(14,27,46,0.14);
  --rule-strong:rgba(14,27,46,0.28);
  --accent:#1E3A8A;   /* azul tinta */
  --accent-2:#2D4FC4;
  --hex:rgba(14,27,46,0.06);

  --fd:'Plus Jakarta Sans', sans-serif;
  --fb:'Inter', sans-serif;
  --fm:'JetBrains Mono', monospace;
}

html{scroll-behavior:smooth}
body{
  background:var(--bone);
  color:var(--ink);
  font-family:var(--fb);
  font-size:16px;line-height:1.65;
  overflow-x:hidden;
}

/* ======= NAV ======= */
nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:0.95rem 2.25rem;
  background:rgba(244,241,234,0.92);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--rule);
}
.brand{
  display:flex;align-items:center;gap:0.6rem;
  font-family:var(--fd);font-weight:800;font-size:0.95rem;
  letter-spacing:-0.01em;color:var(--ink);text-decoration:none;
}
.brand img{width:48px;height:48px}
.nav-links{display:flex;align-items:center;gap:0.15rem;list-style:none}
.nav-links a{
  font-family:var(--fm);font-size:0.72rem;font-weight:500;
  letter-spacing:0.02em;color:var(--ink-soft);text-decoration:none;
  padding:0.45rem 0.85rem;border-radius:999px;transition:background .15s,color .15s;
}
.nav-links a:hover{background:var(--ink);color:var(--bone)}
.nav-cta{
  font-family:var(--fd);font-size:0.8rem;font-weight:700;
  background:var(--accent);color:var(--bone)!important;
  padding:0.55rem 1.1rem;text-decoration:none;
  border-radius:999px;transition:background .15s;
  letter-spacing:-0.005em;
}
.nav-cta:hover{background:var(--accent-2)!important}

/* ======= HEX GRID GIANT BG ======= */
.hex-field{
  position:absolute;inset:0;overflow:hidden;pointer-events:none;
}
.hex-field svg{position:absolute;width:120%;height:120%;top:-10%;left:-10%}

/* ======= HERO ======= */
.hero{
  min-height:calc(100vh - 60px);
  padding:5rem 2.5rem 3rem;
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
  gap:3rem;align-items:center;
  position:relative;
}
.hero-content{position:relative;z-index:2}

.coord{
  font-family:var(--fm);font-size:0.72rem;
  color:var(--ink-mute);letter-spacing:0.08em;
  text-transform:uppercase;margin-bottom:1.75rem;
  display:flex;align-items:center;gap:0.75rem;
}
.coord strong{color:var(--accent);font-weight:500}
.coord-hex{
  display:inline-flex;width:18px;height:20px;
  align-items:center;justify-content:center;
  color:var(--accent);
}
.coord-hex svg{width:100%;height:100%}

h1.hero-title{
  font-family:var(--fd);font-weight:800;
  font-size:clamp(3.2rem,7vw,6.5rem);
  line-height:0.95;letter-spacing:-0.035em;
  color:var(--ink);max-width:740px;
}
h1.hero-title em{font-style:normal;color:var(--accent);font-weight:900}

.hero-deck{
  margin-top:1.75rem;max-width:480px;
  font-size:1.05rem;color:var(--ink-soft);line-height:1.7;
}
.hero-deck strong{color:var(--ink);font-weight:600}

.hero-actions{display:flex;align-items:center;gap:1.25rem;margin-top:2rem;flex-wrap:wrap}
.btn-primary{
  display:inline-flex;align-items:center;gap:0.7rem;
  font-family:var(--fd);font-weight:700;font-size:0.95rem;
  background:var(--ink);color:var(--bone);
  text-decoration:none;padding:0.95rem 1.7rem;
  border-radius:999px;transition:background .18s,transform .18s;
  letter-spacing:-0.005em;
}
.btn-primary:hover{background:var(--accent);transform:translateY(-2px)}
.btn-primary .arr{width:14px;height:10px}

.hero-meta{
  font-family:var(--fm);font-size:0.72rem;
  color:var(--ink-soft);letter-spacing:0.03em;
  display:flex;align-items:center;gap:0.55rem;
}
.pulse-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:pulse 1.7s infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.6)}}

/* Hero visual: hex-clipped image */
.hero-visual{
  position:relative;
  aspect-ratio:5/6;
  max-height:560px;
  margin:0 auto;
  width:100%;max-width:460px;
}
.hex-img{
  position:absolute;inset:0;
  clip-path:polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  overflow:hidden;
  background:var(--ink);
}
.hex-img img{
  width:100%;height:100%;object-fit:cover;display:block;
  filter:saturate(0.8) contrast(1.05);
}
.hex-img::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(14,27,46,0.0) 40%, rgba(14,27,46,0.55) 100%);
}
.hex-outline{
  position:absolute;inset:-14px;
  pointer-events:none;
}
.hex-outline svg{width:100%;height:100%}
.hex-caption{
  position:absolute;bottom:6%;left:50%;transform:translateX(-50%);
  font-family:var(--fm);font-size:0.72rem;color:rgba(244,241,234,0.85);
  letter-spacing:0.12em;text-transform:uppercase;text-align:center;
  z-index:2;
}
.hex-caption strong{color:#fff;font-weight:500}

/* Hex tick-marks around */
.hex-ticks{position:absolute;inset:-30px;pointer-events:none}
.hex-ticks .tick{
  position:absolute;
  font-family:var(--fm);font-size:0.62rem;
  color:var(--ink-mute);letter-spacing:0.08em;
  text-transform:uppercase;
}
.hex-ticks .t1{top:-2px;left:50%;transform:translateX(-50%)}
.hex-ticks .t2{top:24%;right:-2px}
.hex-ticks .t3{bottom:24%;right:-2px}
.hex-ticks .t4{bottom:-2px;left:50%;transform:translateX(-50%)}
.hex-ticks .t5{bottom:24%;left:-2px}
.hex-ticks .t6{top:24%;left:-2px}

/* ======= MARQUEE ======= */
.marquee{
  background:var(--ink);overflow:hidden;padding:0.85rem 0;
  border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);
}
.marquee-track{display:flex;animation:marq 36s linear infinite;width:max-content;gap:2rem}
.marq-item{
  font-family:var(--fd);font-weight:800;font-size:1rem;letter-spacing:0.01em;
  text-transform:uppercase;color:var(--bone);
  padding:0 1rem;white-space:nowrap;display:flex;align-items:center;gap:1.5rem;
}
.marq-hex{color:#8FB3FF;font-size:0.72rem;transform:translateY(-1px)}
@keyframes marq{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ======= SECTION HEAD (unified) ======= */
section{padding:6rem 2.5rem;position:relative}
.inner{max-width:1180px;margin:0 auto;position:relative}

.sect-head{
  display:grid;grid-template-columns:auto 1fr auto;gap:2rem;
  align-items:baseline;padding-bottom:1.5rem;margin-bottom:3rem;
  border-bottom:1px solid var(--ink);
}
.sect-chapter{
  display:inline-flex;align-items:center;gap:0.5rem;
  font-family:var(--fm);font-size:0.75rem;font-weight:500;
  letter-spacing:0.12em;text-transform:uppercase;color:var(--accent);
}
.sect-chapter .dot-hex{width:10px;height:12px;color:var(--accent)}
.sect-title{
  font-family:var(--fd);font-weight:800;
  font-size:clamp(1.7rem,3.2vw,2.6rem);
  letter-spacing:-0.025em;line-height:1.05;color:var(--ink);
}
.sect-meta{
  font-family:var(--fm);font-size:0.72rem;color:var(--ink-mute);
  letter-spacing:0.08em;text-transform:uppercase;text-align:right;
}

/* ======= ABOUT ======= */
#about{background:var(--bone);position:relative}
#about::before{
  content:"";position:absolute;top:0;right:0;width:45%;height:100%;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='70' height='80' viewBox='0 0 70 80'><g fill='none' stroke='rgba(14,27,46,0.07)' stroke-width='1'><polygon points='35,2 65,20 65,60 35,78 5,60 5,20'/></g></svg>");
  background-size:70px 80px;
  mask-image:linear-gradient(-90deg,black,transparent);
  -webkit-mask-image:linear-gradient(-90deg,black,transparent);
  pointer-events:none;
}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start;position:relative}
.about-lede{
  font-family:var(--fd);font-weight:600;
  font-size:clamp(1.35rem,2.1vw,1.7rem);
  line-height:1.25;letter-spacing:-0.015em;color:var(--ink);
}
.about-lede mark{background:transparent;color:var(--accent);padding:0}
.about-body p{font-size:1rem;color:var(--ink-soft);line-height:1.75;margin-bottom:1.15rem}
.about-body p:last-child{margin-bottom:0}
.about-body strong{color:var(--ink);font-weight:600}
.note-card{
  margin-top:2rem;background:var(--ink);color:var(--bone);
  padding:1.4rem 1.5rem;border-radius:6px;
  display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:center;
}
.note-card-hex{
  width:36px;height:40px;color:#8FB3FF;flex-shrink:0;
}
.note-card p{
  font-family:var(--fm);font-size:0.82rem;
  color:rgba(244,241,234,0.75);line-height:1.6;margin:0;
}
.note-card p strong{color:#fff;font-weight:500}

/* ======= TOPICS ======= */
#topics{background:var(--bone-2);position:relative;overflow:hidden}
#topics::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='84' height='96' viewBox='0 0 84 96'><g fill='none' stroke='rgba(14,27,46,0.05)' stroke-width='1'><polygon points='42,3 78,24 78,66 42,87 6,66 6,24'/></g></svg>");
  background-size:84px 96px;opacity:.8;
}
#topics .inner{z-index:1}
.topics-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;
}
.topic{
  background:var(--bone);
  border:1px solid var(--rule-strong);
  border-radius:10px;
  padding:1.75rem;
  display:flex;flex-direction:column;gap:0.85rem;
  min-height:240px;position:relative;
  transition:border-color .2s, transform .2s, box-shadow .2s;
}
.topic:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 8px 24px rgba(14,27,46,0.08)}
.topic-num-hex{
  position:absolute;top:-12px;left:20px;
  width:44px;height:50px;
  display:flex;align-items:center;justify-content:center;
  color:var(--accent);
}
.topic-num-hex svg{position:absolute;inset:0;width:100%;height:100%}
.topic-num-hex span{
  position:relative;z-index:1;
  font-family:var(--fd);font-weight:800;font-size:0.85rem;
  color:var(--bone);letter-spacing:0.01em;
}
.topic-tag{
  align-self:flex-end;
  font-family:var(--fm);font-size:0.65rem;font-weight:500;
  letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-mute);
  padding-bottom:0.5rem;border-bottom:1px solid var(--rule);
  width:100%;text-align:right;margin-top:0.5rem;
}
.topic-title{
  font-family:var(--fd);font-weight:700;font-size:1.15rem;
  color:var(--ink);letter-spacing:-0.015em;line-height:1.2;
  margin-top:1.25rem;
}
.topic-desc{font-size:0.9rem;color:var(--ink-soft);line-height:1.6}

/* ======= COLLAB ======= */
#collaborators{background:var(--bone)}
.collab-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem}
.collab{
  background:var(--bone);
  border:1px solid var(--rule-strong);
  border-radius:10px;
  padding:1.75rem;
  display:flex;flex-direction:column;gap:1rem;
  min-height:190px;
  transition:border-color .2s, transform .2s, box-shadow .2s;
}
.collab:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 8px 20px rgba(14,27,46,0.08)}
.collab.ph{border-style:dashed;background:var(--bone-2)}
.collab.ph:hover{border-color:var(--rule-strong);transform:none;box-shadow:none}
.collab-logo{
  width:100%;
  aspect-ratio:183/119;
  position:relative;
  overflow:hidden;
}
.collab-logo img{
  position:absolute;
  top:0;right:0;bottom:0;left:0;
  width:100%;height:100%;
  object-fit:contain;
}
.collab-logo svg{position:absolute;inset:0;width:100%;height:100%}
.collab-logo span{
  position:relative;z-index:1;
  font-family:var(--fd);font-weight:800;font-size:1rem;color:var(--bone);
}
.collab.ph .collab-logo{color:var(--ink-mute)}
.collab-name{font-family:var(--fd);font-weight:700;font-size:0.98rem;color:var(--ink);letter-spacing:-0.01em}
.collab.ph .collab-name{color:var(--ink-mute);font-style:italic;font-weight:400}
.collab-socials{display:flex;gap:0.4rem;flex-wrap:wrap;margin-top:auto}
.collab-s{
  font-family:var(--fm);font-size:0.65rem;font-weight:500;letter-spacing:0.05em;text-transform:uppercase;
  color:var(--ink-soft);text-decoration:none;padding:0.3rem 0.65rem;
  border-radius:999px;border:1px solid var(--rule-strong);transition:background .15s,color .15s;
}
.collab-s:hover{background:var(--ink);color:var(--bone);border-color:var(--ink)}

/* ======= TEAM ======= */
#team{background:var(--bone-2);position:relative}
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem}
.tm{
  background:var(--bone);
  border:1px solid var(--rule-strong);
  border-radius:10px;
  overflow:hidden;
  display:flex;flex-direction:column;
  transition:border-color .2s, transform .2s, box-shadow .2s;
}
.tm:hover{border-color:var(--accent);transform:translateY(-4px);box-shadow:0 10px 28px rgba(14,27,46,0.1)}
.tm-portrait{
  aspect-ratio:5/5;
  background:linear-gradient(135deg, var(--bone-2), #DCD4C2);
  position:relative;overflow:hidden;
  border-bottom:1px solid var(--rule-strong);
  display:flex;align-items:center;justify-content:center;
}
.tm-portrait-hex{
  width:75%;height:auto;color:var(--accent);opacity:0.55;
  position:relative;z-index:2;
  transition:opacity .2s,transform .2s;
}
.tm:hover .tm-portrait-hex{opacity:0.7;transform:scale(1.05)}
.tm-photo{
  position:absolute;
  width:75%;
  aspect-ratio:48/55;
  object-fit:cover;
  clip-path:polygon(50% 3.64%, 95.83% 25.45%, 95.83% 72.73%, 50% 94.55%, 4.17% 72.73%, 4.17% 25.45%);
  filter:grayscale(100%);
  z-index:1;
  transition:filter .3s;
}
.tm:hover .tm-photo{filter:grayscale(40%)}
.tm-portrait-marker{
  position:absolute;top:10px;left:12px;right:12px;
  display:flex;justify-content:space-between;
  font-family:var(--fm);font-size:0.62rem;
  color:var(--ink-mute);letter-spacing:0.1em;text-transform:uppercase;
}
.tm-body{padding:1.1rem 1.1rem 1.25rem;display:flex;flex-direction:column;gap:0.3rem}
.tm-role{
  font-family:var(--fm);font-size:0.65rem;font-weight:500;
  letter-spacing:0.1em;text-transform:uppercase;color:var(--accent);
}
.tm-name{font-family:var(--fd);font-weight:700;font-size:1.05rem;color:var(--ink);letter-spacing:-0.015em}
.tm-profession{font-family:var(--fb);font-size:0.85rem;color:var(--ink-soft);font-style:italic}
.tm-fn{margin-top:0.5rem;padding-top:0.5rem;border-top:1px solid var(--rule);font-size:0.82rem;color:var(--ink-soft);line-height:1.5}

/* ======= DATA ======= */
#data{background:var(--ink);color:var(--bone);border-top:1px solid var(--ink);position:relative;overflow:hidden}
#data::before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:0.6;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='84' height='96' viewBox='0 0 84 96'><g fill='none' stroke='rgba(244,241,234,0.05)' stroke-width='1'><polygon points='42,3 78,24 78,66 42,87 6,66 6,24'/></g></svg>");
  background-size:84px 96px;
}
#data .inner{position:relative;z-index:1}
#data .sect-head{border-bottom-color:rgba(244,241,234,0.25)}
#data .sect-chapter{color:#8FB3FF}
#data .sect-chapter .dot-hex{color:#8FB3FF}
#data .sect-title{color:var(--bone)}
#data .sect-meta{color:rgba(244,241,234,0.4)}
.data-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start}
.data-lede{font-family:var(--fd);font-weight:600;font-size:clamp(1.3rem,2vw,1.65rem);line-height:1.3;letter-spacing:-0.015em;color:var(--bone);max-width:440px}
.data-body{color:rgba(244,241,234,0.65);font-size:0.97rem;line-height:1.75;margin-top:1.25rem}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.stat{
  background:rgba(244,241,234,0.04);
  border:1px solid rgba(244,241,234,0.12);
  border-radius:10px;padding:1.5rem;
  position:relative;overflow:hidden;
}
.stat::before{
  content:"";position:absolute;top:-20px;right:-20px;width:70px;height:80px;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 70 80' fill='none'><polygon points='35,2 65,20 65,60 35,78 5,60 5,20' stroke='rgba(143,179,255,0.25)' stroke-width='1'/></svg>") no-repeat center/contain;
}
.stat-v{font-family:var(--fd);font-weight:800;font-size:2.5rem;color:#8FB3FF;line-height:1;letter-spacing:-0.04em;margin-bottom:0.45rem;position:relative;z-index:1}
.stat-l{font-family:var(--fm);font-size:0.72rem;color:rgba(244,241,234,0.5);letter-spacing:0.06em;text-transform:uppercase;line-height:1.5;position:relative;z-index:1}


/* ======= FAQ ======= */
#faq{background:var(--bone);position:relative;overflow:hidden}
#faq::before{
  content:"";position:absolute;top:0;left:0;width:40%;height:100%;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='70' height='80' viewBox='0 0 70 80'><g fill='none' stroke='rgba(14,27,46,0.07)' stroke-width='1'><polygon points='35,2 65,20 65,60 35,78 5,60 5,20'/></g></svg>");
  background-size:70px 80px;
  mask-image:linear-gradient(90deg,black,transparent);
  -webkit-mask-image:linear-gradient(90deg,black,transparent);
  pointer-events:none;
}
.faq-list{
  display:flex;flex-direction:column;gap:0;
  border-top:1px solid var(--rule-strong);
  position:relative;
  max-width:920px;
}
.faq-item{
  border-bottom:1px solid var(--rule-strong);
  background:transparent;
  transition:background .2s;
}
.faq-item[open]{background:var(--bone-2)}
.faq-item summary{
  list-style:none;
  cursor:pointer;
  padding:1.5rem 1.25rem 1.5rem 0;
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:1.25rem;
  align-items:center;
  font-family:var(--fd);font-weight:700;font-size:1.05rem;
  letter-spacing:-0.01em;color:var(--ink);
  transition:color .2s;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:hover{color:var(--accent)}
.faq-num{
  font-family:var(--fm);font-size:0.72rem;font-weight:500;
  letter-spacing:0.08em;color:var(--ink-mute);
  padding-left:1rem;
  min-width:48px;
}
.faq-icon{
  width:28px;height:32px;
  display:flex;align-items:center;justify-content:center;
  position:relative;color:var(--accent);
  flex-shrink:0;
  transition:transform .25s;
}
.faq-icon svg{position:absolute;inset:0;width:100%;height:100%}
.faq-icon::after{
  content:"+";position:relative;z-index:1;
  font-family:var(--fd);font-weight:600;font-size:1.05rem;
  color:var(--bone);line-height:1;
}
.faq-item[open] .faq-icon{transform:rotate(45deg)}
.faq-item[open] .faq-icon{color:var(--accent-2)}
.faq-answer{
  padding:0 1.25rem 1.75rem 4.25rem;
  font-size:0.97rem;color:var(--ink-soft);line-height:1.7;
  max-width:780px;
  animation:faqOpen .25s ease-out;
}
.faq-answer p{margin-bottom:0.75rem}
.faq-answer p:last-child{margin-bottom:0}
.faq-answer strong{color:var(--ink);font-weight:600}
.faq-answer a{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
@keyframes faqOpen{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* ======= FOOTER ======= */
footer{background:var(--ink);color:rgba(244,241,234,0.55);padding:4rem 2.5rem 2rem;border-top:1px solid rgba(244,241,234,0.15)}
.foot-inner{max-width:1180px;margin:0 auto}
.foot-top{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:3.5rem;padding-bottom:2.5rem;border-bottom:1px solid rgba(244,241,234,0.15)}
.foot-brand-name{font-family:var(--fd);font-weight:800;font-size:1.5rem;color:var(--bone);letter-spacing:-0.02em;margin-bottom:0.5rem}
.foot-brand-name em{font-style:normal;color:#8FB3FF}
.foot-brand p{font-size:0.86rem;color:rgba(244,241,234,0.45);line-height:1.65;max-width:300px}
.foot-col-t{font-family:var(--fm);font-size:0.68rem;font-weight:500;letter-spacing:0.12em;text-transform:uppercase;color:rgba(244,241,234,0.35);margin-bottom:1rem}
.foot-email{font-family:var(--fd);font-size:0.98rem;font-weight:600;color:var(--bone);text-decoration:none}
.foot-email:hover{color:#8FB3FF}
.foot-social{display:flex;flex-direction:column;gap:0.55rem}
.foot-s{display:flex;align-items:center;gap:0.65rem;color:rgba(244,241,234,0.55);text-decoration:none;font-size:0.88rem}
.foot-s:hover{color:var(--bone)}
.foot-s-ico{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:6px;background:rgba(244,241,234,0.07);flex-shrink:0}
.foot-s-ico svg{width:12px;height:12px;fill:currentColor}
.foot-bot{display:flex;justify-content:space-between;padding-top:1.5rem;flex-wrap:wrap;gap:0.75rem;font-family:var(--fm);font-size:0.72rem;color:rgba(244,241,234,0.3)}

.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s, transform .6s}
.reveal.on{opacity:1;transform:none}
.d1{transition-delay:.08s}.d2{transition-delay:.16s}.d3{transition-delay:.24s}

/* ======= MOBILE MENU BUTTON ======= */
.nav-toggle{
  display:none;
  background:transparent;border:1px solid var(--rule-strong);
  border-radius:8px;padding:0.5rem;cursor:pointer;
  color:var(--ink);
}
.nav-toggle svg{width:20px;height:20px;display:block}

/* ======= RESPONSIVE ======= */
@media (max-width: 960px){
  nav{padding:0.75rem 1.25rem;flex-wrap:wrap}
  .nav-toggle{display:inline-flex}
  .nav-links{
    display:none;order:3;width:100%;
    flex-direction:column;align-items:stretch;gap:0.25rem;
    padding:0.75rem 0 0.25rem;
    border-top:1px solid var(--rule);margin-top:0.75rem;
  }
  .nav-links.open{display:flex}
  .nav-links a{
    padding:0.7rem 0.85rem;font-size:0.8rem;
    border-radius:8px;
  }
  .nav-links .nav-cta{text-align:center;margin-top:0.35rem}

  /* Hero */
  .hero{
    grid-template-columns:1fr;gap:2rem;
    padding:5rem 1.25rem 2rem;min-height:auto;
  }
  h1.hero-title{font-size:clamp(2.4rem,10vw,3.6rem)}
  .hero-deck{font-size:1rem;max-width:100%}
  .coord{flex-wrap:wrap;gap:0.5rem;font-size:0.68rem;margin-bottom:1.25rem}
  .hero-actions{gap:1rem}
  .btn-primary{padding:0.85rem 1.4rem;font-size:0.9rem}
  .hero-visual{max-width:320px;aspect-ratio:5/6}
  .hex-ticks{inset:-20px}
  .hex-ticks .tick{font-size:0.55rem}

  /* Marquee */
  .marq-item{font-size:0.85rem;gap:1rem}

  /* Sections */
  section{padding:4rem 1.25rem}
  .sect-head{
    grid-template-columns:1fr;gap:0.75rem;
    margin-bottom:2rem;padding-bottom:1.25rem;
  }
  .sect-meta{text-align:left}
  .sect-title{font-size:clamp(1.6rem,6vw,2rem)}

  /* About */
  .about-grid{grid-template-columns:1fr;gap:2rem}
  #about::before{width:100%;opacity:0.4}
  .about-lede{font-size:clamp(1.15rem,4.5vw,1.4rem)}
  .note-card{grid-template-columns:1fr;gap:0.75rem;padding:1.2rem}

  /* Topics */
  .topics-grid{grid-template-columns:1fr;gap:1.5rem}
  .topic{min-height:auto;padding:1.5rem}

  /* Data */
  .data-grid{grid-template-columns:1fr;gap:2rem}
  .stats{grid-template-columns:1fr 1fr;gap:0.75rem}
  .stat{padding:1.25rem}
  .stat-v{font-size:2rem}

  /* Collaborators */
  .collab-grid{grid-template-columns:1fr 1fr;gap:1rem}
  .collab{min-height:auto;padding:1.5rem}

  /* Team */
  .team-grid{grid-template-columns:1fr 1fr;gap:1rem}

  /* FAQ */
  .faq-item summary{
    grid-template-columns:auto 1fr auto;
    gap:0.75rem;padding:1.15rem 0.25rem 1.15rem 0;
    font-size:0.95rem;
  }
  .faq-num{padding-left:0.25rem;min-width:32px;font-size:0.65rem}
  .faq-answer{padding:0 0.25rem 1.35rem 2.65rem;font-size:0.92rem}

  /* Footer */
  footer{padding:3rem 1.25rem 1.5rem}
  .foot-top{grid-template-columns:1fr;gap:2rem;padding-bottom:2rem}
  .foot-bot{flex-direction:column;gap:0.4rem}
}

@media (max-width: 480px){
  .collab-grid{grid-template-columns:1fr}
  .team-grid{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr}
  h1.hero-title{font-size:clamp(2rem,11vw,3rem)}
  .coord strong,.coord span{font-size:0.65rem}
  .hero-meta{font-size:0.65rem}
  .hex-ticks .tick{display:none}
}
