/* Huella Lab design system — shared across all pages */
:root{--paper:#faf9f5;--ink:#141d18;--dim:#5d6a61;--green:#2f6b2a;--lime:#7cb52e;--gold:#d9a93c;--cyan:#1fa8d4;--violet:#7a63e8;--ease:cubic-bezier(.16,1,.3,1);--max:1280px;--acc:#2f6b2a;--acc-soft:rgba(47,107,42,.1)}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,sans-serif;overflow-x:hidden;line-height:1.6}
a{color:inherit;text-decoration:none}
img{max-width:100%}
.wrap{max-width:var(--max);margin:0 auto;padding:0 28px}
::selection{background:rgba(124,181,46,.35)}
.mono{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.22em;color:var(--green)}
.rev{opacity:0;transform:translateY(30px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.rev.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.rev{opacity:1;transform:none}}
/* nav */
nav.lab-nav{position:fixed;top:0;left:0;right:0;z-index:40;background:rgba(250,249,245,.75);backdrop-filter:blur(14px);border-bottom:1px solid rgba(20,29,24,.08)}
.lab-nav .nav-in{max-width:var(--max);margin:0 auto;padding:14px 28px;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:64px}
.lab-nav .brand img{height:38px;display:block}
.lab-nav .links{display:flex;align-items:center;gap:22px;font-size:14px;font-weight:500}
.lab-nav .links>a{color:var(--dim);transition:color .3s}
.lab-nav .links>a:hover,.lab-nav .links>a.on{color:var(--ink)}
.lab-nav .nav-cta{padding:9px 18px;border-radius:999px;background:var(--ink);color:#fff!important}
.menu-btn{display:none;border:1.5px solid rgba(20,29,24,.2);background:#fff;border-radius:999px;padding:9px 16px;font-weight:600;font-size:13px;cursor:pointer;font-family:Inter,sans-serif;color:var(--ink)}
.mob-panel{display:none;position:fixed;top:64px;left:0;right:0;z-index:39;background:rgba(250,249,245,.98);backdrop-filter:blur(14px);border-bottom:1px solid rgba(20,29,24,.1);padding:14px 28px 22px;flex-direction:column;gap:2px}
.mob-panel.open{display:flex}
.mob-panel a{padding:11px 0;border-bottom:1px solid rgba(20,29,24,.07);font-weight:600;font-size:15px}
@media(max-width:980px){.lab-nav .links{display:none}.menu-btn{display:block}}
/* language dropdown */
.lang{position:relative}
.lang>button{display:flex;align-items:center;gap:7px;font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:600;letter-spacing:.06em;padding:8px 14px;border-radius:999px;border:1.5px solid rgba(20,29,24,.2);background:transparent;color:var(--ink);cursor:pointer}
.lang>button:hover{border-color:var(--ink)}
.lang-menu{position:absolute;right:0;top:calc(100% + 10px);min-width:200px;background:#fff;border:1px solid rgba(20,29,24,.1);border-radius:14px;box-shadow:0 20px 50px rgba(20,29,24,.16);padding:8px;display:none;z-index:60}
.lang.open .lang-menu{display:block}
.lang-menu button{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left;padding:10px 12px;border:0;background:none;border-radius:9px;font-family:Inter,sans-serif;font-size:13.5px;color:var(--ink);cursor:pointer}
.lang-menu button:hover{background:rgba(124,181,46,.12)}
.lang-menu button small{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--dim)}
.lang-menu button.sel{background:rgba(124,181,46,.16)}
/* page hero */
.page-hero{position:relative;padding:150px 0 80px;overflow:hidden}
.aurora{position:absolute;inset:0;pointer-events:none}
.aurora i{position:absolute;border-radius:50%;filter:blur(70px);opacity:.5;animation:auf 16s var(--ease) infinite alternate}
.aurora i:nth-child(1){width:520px;height:520px;left:-140px;top:-160px;background:radial-gradient(circle,var(--acc-soft),transparent 65%);opacity:.9}
.aurora i:nth-child(2){width:560px;height:560px;right:-170px;top:-40px;background:radial-gradient(circle,rgba(124,181,46,.28),transparent 70%)}
@keyframes auf{to{transform:translate3d(36px,22px,0) scale(1.1)}}
@media(prefers-reduced-motion:reduce){.aurora i{animation:none}}
.page-hero .wrap{position:relative}
.page-hero h1{font-family:Manrope,sans-serif;font-weight:800;font-size:clamp(34px,4.6vw,76px);line-height:1.05;letter-spacing:-.025em;margin-top:20px}
.page-hero h1 em{font-style:normal;background:linear-gradient(100deg,var(--green),var(--lime));-webkit-background-clip:text;background-clip:text;color:transparent}
.page-hero .lead{max-width:640px;color:var(--dim);font-size:clamp(15.5px,1.5vw,19px);line-height:1.65;margin-top:24px}
.hero-logo{height:34px;width:auto;max-width:240px;object-fit:contain;display:block;margin-bottom:8px}
/* buttons */
.btn{display:inline-block;padding:15px 28px;border-radius:999px;font-weight:600;font-size:15px;transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.btn-ink{background:var(--ink);color:#fff}
.btn-ink:hover{transform:translateY(-3px);box-shadow:0 16px 40px rgba(20,29,24,.25)}
.btn-line{border:1.5px solid rgba(20,29,24,.25)}
.btn-line:hover{border-color:var(--ink);transform:translateY(-3px)}
.btn-lime{background:var(--lime);color:#12200f}
.btn-lime:hover{transform:translateY(-3px);box-shadow:0 16px 44px rgba(124,181,46,.4)}
.btn-ghost{border:1.5px solid rgba(255,255,255,.35);color:#fff}
.btn-ghost:hover{border-color:#fff;transform:translateY(-3px)}
.cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:32px}
/* sections */
.sec{padding:90px 0}
.sec-tight{padding:50px 0}
.sec-head{max-width:760px;margin-bottom:44px}
.sec-head h2{font-family:Manrope,sans-serif;font-weight:800;font-size:clamp(26px,3.6vw,50px);line-height:1.1;letter-spacing:-.02em;margin-top:18px}
.sec-head h2 em{font-style:normal;background:linear-gradient(100deg,var(--green),var(--lime));-webkit-background-clip:text;background-clip:text;color:transparent}
.sec-head p{color:var(--dim);line-height:1.7;margin-top:16px;max-width:640px}
.sec-center{text-align:center}
.sec-center .sec-head{margin-left:auto;margin-right:auto}
.sec-center .sec-head p{margin-left:auto;margin-right:auto}
/* card grids */
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.lab-card{background:#fff;border-radius:20px;padding:30px 26px;box-shadow:0 12px 40px rgba(20,29,24,.08);border:1px solid rgba(20,29,24,.06);transition:transform .4s var(--ease),border-color .4s}
.lab-card:hover{transform:translateY(-5px);border-color:var(--acc)}
.lab-card h3{font-family:Manrope,sans-serif;font-weight:800;font-size:19px;letter-spacing:-.01em;margin-bottom:10px}
.lab-card p{color:var(--dim);font-size:14px;line-height:1.65}
.lab-card .card-num{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.18em;color:var(--acc);font-weight:600;display:block;margin-bottom:12px}
.cs-thumb{position:relative;width:100%;aspect-ratio:4/3;overflow:hidden;background:linear-gradient(135deg,#0d1f0b 0%,#173a12 55%,#2f6b2a 100%)}
.cs-thumb::before{content:"";position:absolute;inset:0;background:radial-gradient(70% 70% at 85% 90%,rgba(124,181,46,.45),transparent 70%)}
.cs-thumb-label{position:absolute;left:24px;top:24px;z-index:2;font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:600;letter-spacing:.14em;color:var(--gold)}
.cs-thumb-name{position:absolute;left:24px;top:56px;z-index:2;margin:0;font-family:Manrope,sans-serif;font-weight:800;font-size:clamp(24px,2.6vw,34px);letter-spacing:-.02em;color:#fff}
.cs-thumb-rule{position:absolute;left:24px;top:108px;z-index:2;width:36px;height:3px;background:var(--lime)}
.cs-creative{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:bottom right;z-index:1;pointer-events:none}
.cs-actions{display:flex;gap:10px;margin-top:14px}
.cs-actions a{flex:1;text-align:center;padding:10px 14px;border-radius:8px;font-size:13px;font-weight:600;font-family:Inter,sans-serif;text-decoration:none;transition:transform .3s,opacity .3s}
.cs-actions .cs-view{background:var(--acc);color:#fff}
.cs-actions .cs-view:hover{opacity:.88}
.cs-actions .cs-dl{border:1.5px solid rgba(20,29,24,.15);color:var(--ink)}
.cs-actions .cs-dl:hover{border-color:var(--acc);color:var(--acc)}
.cs-slot{border:1.5px dashed rgba(20,29,24,.18);border-radius:20px;background:rgba(20,29,24,.02);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:340px;text-align:center;padding:30px}
.cs-slot .cs-slot-tag{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.14em;color:rgba(20,29,24,.4)}
.cs-slot p{color:rgba(20,29,24,.4);font-size:14px;margin:0}
@media(max-width:900px){.grid-2,.grid-3{grid-template-columns:1fr}}
/* step flow */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;counter-reset:step}
.step{position:relative;background:#fff;border-radius:18px;padding:26px 22px;box-shadow:0 12px 40px rgba(20,29,24,.08);border-top:4px solid var(--acc)}
.step b{display:block;font-family:Manrope,sans-serif;font-weight:800;font-size:18px;margin:10px 0 8px}
.step p{color:var(--dim);font-size:13.5px;line-height:1.6}
.step::before{counter-increment:step;content:counter(step,decimal-leading-zero);font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.16em;color:var(--acc);font-weight:600}
.step::after{content:"→";position:absolute;right:-14px;top:50%;transform:translateY(-50%);color:var(--acc);font-size:18px;z-index:1}
.step:last-child::after{display:none}
@media(max-width:900px){.steps{grid-template-columns:1fr}.step::after{content:"↓";right:auto;left:50%;top:auto;bottom:-20px;transform:translateX(-50%)}}
/* accent statement band */
.band{background:linear-gradient(135deg,#fff 48%,var(--acc-soft));border-radius:26px;padding:clamp(30px,4vw,60px);box-shadow:0 20px 60px rgba(20,29,24,.1)}
/* creative placeholder */
.slotbox{display:flex;flex-direction:column;gap:9px;background:#fff;border:2px dashed var(--acc);border-radius:12px;padding:18px 14px 12px;position:relative;min-height:170px;justify-content:center}
.slot-tag{position:absolute;top:-11px;left:50%;transform:translateX(-50%);background:var(--acc);color:#fff;font-family:'JetBrains Mono',monospace;font-size:8.5px;letter-spacing:.14em;font-weight:600;padding:4px 11px;border-radius:999px;white-space:nowrap;z-index:1}
.sk{display:block;border-radius:6px}
.sk-head{height:11px;width:55%;background:var(--acc);opacity:.9}
.sk-media{min-height:64px;background:linear-gradient(120deg,var(--acc-soft) 25%,rgba(255,255,255,.75) 45%,var(--acc-soft) 65%);background-size:200% 100%;animation:shimmer 2.6s linear infinite;border-radius:8px}
@keyframes shimmer{to{background-position:-200% 0}}
.sk-line{height:7px;width:92%;background:rgba(20,29,24,.12)}
.sk-line.short{width:58%}
.sk-cta{height:26px;width:64%;background:var(--ink);border-radius:999px;margin-top:2px}
/* dark CTA band */
.cta-band{margin:0 auto;max-width:var(--max);padding:0 28px 110px}
.cta-band-in{border-radius:32px;background:var(--ink);color:#fff;text-align:center;padding:clamp(54px,7vw,100px) 28px;position:relative;overflow:hidden}
.cta-band-in::before{content:"";position:absolute;inset:0;background:radial-gradient(90% 90% at 50% 120%,rgba(124,181,46,.45),transparent 60%)}
.cta-band-in>*{position:relative}
.cta-band-in h2{font-family:Manrope,sans-serif;font-weight:800;font-size:clamp(30px,4.6vw,64px);line-height:1.05;letter-spacing:-.025em}
.cta-band-in h2 em{font-style:normal;background:linear-gradient(100deg,#a7d95e,#e8f5c8);-webkit-background-clip:text;background-clip:text;color:transparent}
.cta-band-in p{color:rgba(255,255,255,.75);max-width:600px;margin:22px auto 0;line-height:1.7}
.cta-band-in .cta-row{justify-content:center}
/* footer */
footer.lab-foot{border-top:1px solid rgba(20,29,24,.1);padding:50px 0 40px;background:rgba(255,255,255,.6)}
.lab-foot .foot{max-width:var(--max);margin:0 auto;padding:0 28px;display:flex;flex-wrap:wrap;gap:26px;align-items:center;justify-content:space-between}
.lab-foot .foot img{height:26px}
.lab-foot .foot-links{display:flex;gap:22px;font-size:13.5px;color:var(--dim);flex-wrap:wrap}
.lab-foot .foot-links a:hover{color:var(--ink)}
.lab-foot .copyright{max-width:var(--max);margin:26px auto 0;padding:0 28px;font-size:12px;color:rgba(20,29,24,.45)}
/* cookie */
.cookie{position:fixed;left:50%;bottom:22px;transform:translate(-50%,140%);z-index:80;width:min(720px,calc(100vw - 32px));background:#fff;border:1px solid rgba(20,29,24,.12);border-radius:20px;box-shadow:0 30px 70px rgba(20,29,24,.25);padding:22px 24px;display:flex;gap:20px;align-items:center;flex-wrap:wrap;transition:transform .8s var(--ease)}
.cookie.show{transform:translate(-50%,0)}
.cookie p{flex:1 1 320px;font-size:13.5px;line-height:1.6;color:var(--dim);margin:0}
.cookie p a{color:var(--green);font-weight:600;text-decoration:underline}
.cookie-btns{display:flex;gap:10px}
.cookie-btns button{padding:11px 20px;border-radius:999px;font-weight:600;font-size:13.5px;cursor:pointer;border:0;font-family:Inter,sans-serif}
.ck-accept{background:var(--ink);color:#fff}
.ck-accept:hover{background:var(--green)}
.ck-essential{background:transparent;border:1.5px solid rgba(20,29,24,.25)!important;color:var(--ink)}
.ck-essential:hover{border-color:var(--ink)!important}
/* misc */
.pillrow{display:flex;flex-wrap:wrap;gap:9px}
.pillrow span{font-size:13px;font-weight:600;padding:9px 17px;border-radius:999px;background:#fff;border:1px solid rgba(20,29,24,.12)}
.go-acc{font-weight:700;color:var(--acc)}
.go-acc:hover{text-decoration:underline}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:clamp(26px,4vw,64px);align-items:center}
@media(max-width:900px){.two-col{grid-template-columns:1fr}}

/* ===== hero visuals ===== */
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(30px,5vw,80px);align-items:center}
@media(max-width:960px){.hero-grid{grid-template-columns:1fr}}
.hero-visual{position:relative;display:flex;flex-direction:column;align-items:center}
.phone-frame{width:min(310px,50vw);aspect-ratio:9/16.5;background:#0c0c0e;border-radius:38px;padding:12px;display:flex;position:relative;overflow:hidden;box-shadow:0 30px 70px rgba(20,29,24,.28),inset 0 0 0 2px rgba(255,255,255,.06)}
.phone-frame::before{content:"";position:absolute;top:12px;left:50%;transform:translateX(-50%);width:38%;height:22px;background:#0c0c0e;border-radius:0 0 16px 16px;z-index:3}
.phone-frame::after{content:"";position:absolute;bottom:9px;left:50%;transform:translateX(-50%);width:34%;height:4px;background:rgba(255,255,255,.55);border-radius:3px;z-index:3}
.phone-frame>*{border-radius:26px!important}
.ad-slot-320x480{width:100%;height:100%;overflow:hidden;position:relative;background:#f4f3ef;border-radius:6px}
.ad-slot-320x480 iframe{width:320px;height:480px;border:0;transform-origin:top left;transform:scale(calc((min(310px,50vw) - 24px) / 320))}
.phone-frame .slotbox{flex:1;margin-top:10px;min-height:0}
.tv-frame{    width: min(600px, 84vw);
    aspect-ratio: 16 / 9;
    background: #0a0a0a;
    border-radius: 8px;
    padding: 9px;
    display: flex;
    position: relative;
    box-shadow: 0 30px 70px rgba(20, 29, 24, .28), inset 0 0 0 1px rgba(255, 255, 255, .08);
    margin-bottom: 34px;}
.tv-frame::before{content:"";position:absolute;left:50%;bottom:-22px;transform:translateX(-50%);width:6px;height:22px;background:linear-gradient(#232323,#111)}
.tv-frame::after{content:"";position:absolute;left:50%;bottom:-26px;transform:translateX(-50%);width:26%;height:7px;border-radius:4px;background:linear-gradient(#2a2a2a,#131313);box-shadow:0 6px 14px rgba(0,0,0,.3)}
.tv-frame>*{border-radius:2px!important}
.tv-frame .slotbox{flex:1;min-height:0}
.format-cluster{display:flex;gap:12px;align-items:flex-end}
.fmt-a{width:140px;aspect-ratio:6/5}
.fmt-b{width:118px;aspect-ratio:2/3}
.fmt-c{width:106px;aspect-ratio:1/2}
.ad-slot-300x250,.ad-slot-320x480-ai,.ad-slot-300x600{overflow:hidden;position:relative;background:#f4f3ef;border-radius:8px;width:100%;height:100%}
.ad-slot-300x250 iframe{width:300px;height:250px;border:0;transform-origin:top left;transform:scale(calc(140 / 300))}
.ad-slot-320x480-ai iframe{width:320px;height:480px;border:0;transform-origin:top left;transform:scale(calc(118 / 320))}
.ad-slot-300x600 iframe{width:300px;height:600px;border:0;transform-origin:top left;transform:scale(calc(106 / 300))}
.format-cluster .slotbox{min-height:0;padding:16px 10px 10px}
.eco-float{position:absolute;z-index:2;font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.12em;font-weight:600;background:#fff;border:1.5px solid var(--acc);color:var(--ink);border-radius:999px;padding:8px 13px;box-shadow:0 12px 30px rgba(20,29,24,.14)}
.ef-a{top:2%;right:-24%;transform:rotate(3deg)}
.ef-b{bottom:8%;left:-5%;transform:rotate(-3deg)}
@media(max-width:960px){.ef-a{right:2%}.ef-b{left:2%}}
/* engine diagram */
.engine-diagram{background:#fff;border-radius:20px;padding:30px 26px;box-shadow:0 24px 60px rgba(20,29,24,.16);display:flex;flex-direction:column;align-items:center;width:min(360px,88vw)}
.eng-products{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:100%}
.eng-products span{display:flex;align-items:center;justify-content:center;border:1px solid rgba(20,29,24,.14);border-radius:12px;padding:14px 10px;background:#fafbf8}
.eng-products img{max-height:18px;width:auto;max-width:90%;object-fit:contain}
.eng-lines{display:grid;grid-template-columns:repeat(3,1fr);width:70%;height:26px}
.eng-lines i{display:block;width:1.5px;height:100%;background:linear-gradient(rgba(20,29,24,.3),var(--lime));justify-self:center}
.eng-core{display:flex;flex-direction:column;align-items:center;gap:8px;border:1.5px solid var(--lime);border-radius:14px;padding:16px 24px;background:rgba(124,181,46,.08);width:100%}
.eng-core img{max-height:24px;width:auto;max-width:80%;object-fit:contain}
.eng-core small{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.16em;color:#4c6b28;text-align:center}
/* ecosystem orbit (about) */
.orbit-card{background:#fff;border-radius:22px;padding:34px 28px;box-shadow:0 24px 60px rgba(20,29,24,.16);display:flex;flex-direction:column;align-items:center;gap:18px;width:min(380px,88vw)}
.orbit-core{display:flex;align-items:center;gap:12px}
.orbit-core img{height:44px}
.orbit-core small{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.16em;color:var(--dim)}
.orbit-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;width:100%}
.orbit-grid span{display:flex;align-items:center;justify-content:center;border:1px solid rgba(20,29,24,.12);border-radius:12px;padding:16px 10px;background:#fafbf8}
.orbit-grid img{max-height:20px;width:auto;max-width:88%;object-fit:contain}


/* ===== AIgnite Hero Iframe — 2X Size Override ===== */

.format-cluster {
  display: flex;
  gap: 20px;
  align-items: flex-end;
  justify-content: center;
  width: max-content;
}

.ad-slot-300x250,
.ad-slot-320x480-ai,
.ad-slot-300x600 {
  overflow: hidden;
  position: relative;
  background: #f4f3ef;
  border-radius: 8px;
  height: auto;
  flex: 0 0 auto;
}

/* 300x250 — displayed at 280x233 */
.fmt-a {
  width: 280px;
  aspect-ratio: 6 / 5;
}

/* 320x480 — displayed at 236x354 */
.fmt-b {
  width: 236px;
  aspect-ratio: 2 / 3;
}

/* 300x600 — displayed at 212x424 */
.fmt-c {
  width: 212px;
  aspect-ratio: 1 / 2;
}

.ad-slot-300x250 iframe {
  display: block;
  width: 300px;
  height: 250px;
  border: 0;
  transform-origin: top left;
  transform: scale(calc(280 / 300));
}

.ad-slot-320x480-ai iframe {
  display: block;
  width: 320px;
  height: 480px;
  border: 0;
  transform-origin: top left;
  transform: scale(calc(236 / 320));
}

.ad-slot-300x600 iframe {
  display: block;
  width: 300px;
  height: 600px;
  border: 0;
  transform-origin: top left;
  transform: scale(calc(212 / 300));
}

/* Give the hero a little more room for the enlarged creatives */
.hero-grid {
  grid-template-columns: .85fr 1.15fr;
  gap: clamp(24px, 3vw, 50px);
}

.hero-visual {
  min-width: 0;
  overflow: visible;
}

/* Mobile — keep the same 2X creative sizes */
@media (max-width: 960px) {
  .hero-grid {
    grid-template-columns: 1fr;
  }

  .hero-visual {
    width: 100%;
    overflow-x: auto;
    overflow-y: visible;
    justify-content: flex-start;
    padding-bottom: 10px;
  }

  .format-cluster {
    justify-content: flex-start;
    margin: 0 auto;
  }
}


/* ===== team / leadership ===== */
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.team-card{background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 14px 44px rgba(20,29,24,.1);border:1px solid rgba(20,29,24,.06);transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.team-card:hover{transform:translateY(-6px);box-shadow:0 26px 64px rgba(20,29,24,.16)}
.team-card .tphoto{aspect-ratio:4/4.4;overflow:hidden;background:linear-gradient(160deg,var(--acc-soft),#eef3ea)}
.team-card .tphoto img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .8s var(--ease)}
.team-card:hover .tphoto img{transform:scale(1.04)}
.team-card .tinfo{padding:18px 20px 20px}
.team-card .tinfo b{display:block;font-family:Manrope,sans-serif;font-weight:800;font-size:18px;letter-spacing:-.01em}
.team-card .tinfo small{display:block;font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.16em;color:var(--green);font-weight:600;margin:5px 0 9px}
.team-card .tinfo p{color:var(--dim);font-size:13px;line-height:1.6;margin:0}
.team-sub{grid-template-columns:repeat(2,1fr);margin-top:16px;max-width:66%}
.team-sub .team-card{display:grid;grid-template-columns:110px 1fr}
.team-sub .tphoto{aspect-ratio:auto;height:100%}
@media(max-width:900px){.team-grid{grid-template-columns:1fr}.team-sub{max-width:100%;grid-template-columns:1fr}}
/* life gallery */
.life-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:180px;gap:14px}
.life-grid .shot{border-radius:16px;overflow:hidden;box-shadow:0 12px 36px rgba(20,29,24,.12)}
.life-grid .shot img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.life-grid .shot:hover img{transform:scale(1.05)}
.life-grid .big{grid-column:span 2;grid-row:span 2}
.life-grid .slotbox{min-height:0;height:100%}
@media(max-width:900px){.life-grid{grid-template-columns:repeat(2,1fr)}}
/* instagram widget */
.ig-band{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,60px);align-items:center;background:#fff;border-radius:26px;padding:clamp(28px,4vw,52px);box-shadow:0 20px 60px rgba(20,29,24,.12);position:relative;overflow:hidden}
.ig-band::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:linear-gradient(180deg,#f9ce34,#ee2a7b 50%,#6228d7)}
.ig-head{display:flex;align-items:center;gap:16px;margin-bottom:16px}
.ig-icon{width:54px;height:54px;border-radius:16px;background:linear-gradient(45deg,#f9ce34,#ee2a7b 55%,#6228d7);display:flex;align-items:center;justify-content:center;flex:none}
.ig-icon svg{width:28px;height:28px;stroke:#fff}
.ig-head b{display:block;font-family:Manrope,sans-serif;font-weight:800;font-size:20px}
.ig-head small{color:var(--dim);font-size:13px}
.ig-band p{color:var(--dim);font-size:14.5px;line-height:1.7}
.btn-ig{background:linear-gradient(45deg,#f9ce34,#ee2a7b 55%,#6228d7);color:#fff;margin-top:18px}
.btn-ig:hover{transform:translateY(-3px);box-shadow:0 16px 44px rgba(238,42,123,.35)}
.ig-tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.ig-tiles .shot{aspect-ratio:1;border-radius:14px;overflow:hidden;box-shadow:0 10px 30px rgba(20,29,24,.12)}
.ig-tiles .shot img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.ig-tiles .shot:hover img{transform:scale(1.06)}
.ig-tiles .slotbox{min-height:0;aspect-ratio:1}
@media(max-width:900px){.ig-band{grid-template-columns:1fr}}

/* founder quote line */
.tquote{margin-top:10px!important;font-size:12.5px!important;color:#39463f!important;font-style:italic;border-left:3px solid var(--lime);padding-left:10px}
/* team photo carousel */
.photo-marq{overflow:hidden;border-radius:20px}
.photo-track{display:flex;gap:14px;width:max-content;animation:photomarq 36s linear infinite}
.photo-marq:hover .photo-track{animation-play-state:paused}
@keyframes photomarq{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.photo-track{animation:none}}
.pshot{width:300px;height:230px;border-radius:16px;overflow:hidden;box-shadow:0 12px 36px rgba(20,29,24,.14);flex:none}
.pshot.tall{width:340px}
.pshot img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.pshot:hover img{transform:scale(1.05)}
/* linkedin band */
.li-band::before{background:#0a66c2}
.li-icon{background:#0a66c2;border-radius:14px}
.li-icon svg{width:24px;height:24px}
.btn-li{background:#0a66c2;color:#fff;margin-top:18px}
.btn-li:hover{transform:translateY(-3px);box-shadow:0 16px 44px rgba(10,102,194,.35)}
/* site-wide paint canvas + moments badge (injected by lab.js) */
#paint{position:fixed;inset:0;z-index:0;pointer-events:none}
.hero-note{display:inline-flex;align-items:center;gap:14px;color:var(--dim);font-size:14px;font-weight:500;padding:13px 20px 13px 15px;border-radius:16px;background:#fff;border:1px solid rgba(20,29,24,.07);box-shadow:0 12px 40px rgba(20,29,24,.1)}
.pb-swatch{position:relative;width:30px;height:30px;flex:none;border-radius:50%;overflow:hidden}
.pb-swatch::before{content:"";position:absolute;inset:-8px;background:conic-gradient(from 0deg,#2f6b2a,#d9a93c,#1fa8d4,#7a63e8,#7cb52e,#2f6b2a);filter:blur(5px);animation:swatchspin 5s linear infinite}
.pb-swatch::after{content:"";position:absolute;inset:9px;border-radius:50%;background:#fff}
@keyframes swatchspin{to{transform:rotate(360deg)}}
.hero-note .pb-copy b{color:var(--ink);font-weight:700}
.hero-note .pb-count{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.06em;color:var(--green);font-weight:600;border-left:1px solid rgba(20,29,24,.12);padding-left:14px;font-variant-numeric:tabular-nums}
.hero-note.float{position:fixed;left:0;top:0;margin:0;z-index:70;padding:10px 16px 10px 11px;font-size:13px;border-radius:14px;box-shadow:0 18px 54px rgba(20,29,24,.22);pointer-events:none;will-change:transform}
.hero-note.float.chase{padding:8px 12px 8px 9px;gap:8px;border-radius:999px}
.hero-note.float.chase .pb-copy{display:none}
.hero-note.float.chase .pb-count{border-left:0;padding-left:0;font-size:10px}
.hero-note.float.chase .pb-swatch{width:20px;height:20px}
.hero-note.float.chase .pb-swatch::after{inset:6px}
.hero-note.float.shy{opacity:.2}
@media(hover:none){.hero-note.float{left:16px;top:auto;bottom:16px}}

/* ===== phase 1: hierarchy, motion, a11y (shared) ===== */
:focus-visible{outline:2.5px solid var(--lime);outline-offset:3px;border-radius:6px}
.skip{position:fixed;top:-60px;left:16px;z-index:99;background:var(--ink);color:#fff;padding:10px 18px;border-radius:999px;font-weight:600;font-size:13px;transition:top .3s}
.skip:focus{top:12px}
body{animation:pagein .6s ease}
@keyframes pagein{from{opacity:0}to{opacity:1}}
.pdrop{position:relative}
.pdrop>button{display:flex;align-items:center;gap:6px;font-family:Inter,sans-serif;font-size:14px;font-weight:500;color:var(--dim);background:none;border:0;cursor:pointer;padding:6px 0}
.pdrop>button span{display:inline-block;transform:translateY(-3px)}
.pdrop>button:hover{color:var(--ink)}
.pmenu{position:absolute;left:50%;transform:translateX(-50%) translateY(6px);top:calc(100% + 12px);width:340px;background:#fff;border:1px solid rgba(20,29,24,.08);border-radius:18px;box-shadow:0 26px 64px rgba(20,29,24,.18);padding:10px;opacity:0;visibility:hidden;transition:opacity .3s var(--ease),transform .3s var(--ease);color:var(--ink)}
.pmenu b{color:var(--ink)}
.pdrop:hover .pmenu,.pdrop:focus-within .pmenu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.pmenu a{display:grid;grid-template-columns:86px 1fr;align-items:center;gap:14px;padding:12px 14px;border-radius:12px;transition:background .25s}
.pmenu a:hover{background:rgba(124,181,46,.1)}
.pmenu img{height:17px;width:auto;max-width:82px;object-fit:contain;justify-self:start}
.pmenu b{display:block;font-size:14px;font-weight:700}
.pmenu small{color:var(--dim);font-size:11.5px;line-height:1.35;display:block}
footer .lang{order:2}
footer .lang-menu{bottom:calc(100% + 10px);top:auto}
/* about: hero photo, philosophy statements, why checklist */
.about-hero-shot{position:relative;border-radius:24px;overflow:hidden;box-shadow:0 26px 64px rgba(20,29,24,.2);width:min(440px,90vw)}
.about-hero-shot img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.about-hero-shot .dev-tag{left:18px;top:auto;bottom:14px}
.philo{display:flex;flex-direction:column}
.philo-row{display:grid;grid-template-columns:minmax(200px,.9fr) 1.1fr;gap:clamp(18px,4vw,60px);align-items:baseline;padding:34px 0;border-bottom:1.5px solid rgba(20,29,24,.12)}
.philo-row:first-child{border-top:1.5px solid rgba(20,29,24,.12)}
.philo-row b{font-family:Manrope,sans-serif;font-weight:800;font-size:clamp(30px,4vw,54px);letter-spacing:-.02em;background:linear-gradient(100deg,var(--green),var(--lime));-webkit-background-clip:text;background-clip:text;color:transparent}
.philo-row p{color:var(--dim);line-height:1.7;font-size:15.5px;max-width:520px}
@media(max-width:760px){.philo-row{grid-template-columns:1fr;gap:8px}}
.why-list{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 40px}
.why-row{display:flex;gap:16px;padding:20px 0;border-bottom:1px solid rgba(20,29,24,.1)}
.why-row i{font-style:normal;color:var(--lime);font-weight:700;font-size:17px;flex:none;margin-top:2px}
.why-row b{display:block;font-family:Manrope,sans-serif;font-weight:800;font-size:16.5px}
.why-row p{color:var(--dim);font-size:13.5px;line-height:1.6;margin-top:3px}
@media(max-width:860px){.why-list{grid-template-columns:1fr}}
/* leadership photo unification + link */
.team-card .tphoto{background:linear-gradient(165deg,#eef3ea,#dfe7dc)}
.team-card .tphoto img{filter:saturate(.92) contrast(1.03)}
.tlink{display:inline-block;margin-top:10px;font-weight:700;font-size:13px;color:#0a66c2}
.tlink:hover{text-decoration:underline}
.dev-tag{position:absolute;top:-11px;left:16px;font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.16em;font-weight:600;background:var(--ink);color:#fff;padding:4px 11px;border-radius:999px;z-index:3}

/* ===== phase 3 shared: huella system, heatmap, loader, transitions, playground ===== */
.huella-sign{font-style:normal;color:var(--green);font-weight:700}
button.hero-note{cursor:pointer;font-family:Inter,sans-serif;text-align:left;border:1px solid rgba(20,29,24,.07)}
.hero-note.float{pointer-events:auto}
.hero-note.float.chase{pointer-events:none}
.heatmap{position:fixed;inset:0;z-index:96;background:rgba(20,29,24,.86);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;cursor:pointer;animation:hmin .4s var(--ease)}
@keyframes hmin{from{opacity:0}to{opacity:1}}
.heatmap canvas{position:absolute;inset:0;width:100%;height:100%}
.heatmap .hm-copy{position:relative;text-align:center;color:#fff;max-width:520px;padding:0 24px;pointer-events:none}
.heatmap .hm-copy .mono{color:#a7d95e}
.heatmap .hm-copy h3{font-family:Manrope,sans-serif;font-weight:800;font-size:clamp(24px,3.4vw,40px);margin:12px 0 10px}
.heatmap .hm-copy p{color:rgba(255,255,255,.75);font-size:14px;line-height:1.65}
.heatmap .hm-copy small{display:block;margin-top:18px;font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.2em;color:rgba(255,255,255,.5)}
.stamp{position:fixed;inset:0;z-index:98;background:var(--paper);display:flex;align-items:center;justify-content:center;animation:stampout .5s ease .9s forwards}
.stamp svg{width:74px;height:74px;color:var(--green);animation:stampin .55s var(--ease)}
@keyframes stampin{0%{transform:scale(2.4) rotate(-14deg);opacity:0}55%{transform:scale(.94) rotate(0);opacity:1}100%{transform:scale(1)}}
@keyframes stampout{to{opacity:0;visibility:hidden}}
body.leaving{opacity:0;transition:opacity .26s ease}
/* AIgnite playground */
.play-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(24px,4vw,60px);align-items:start}
.play-controls{display:flex;flex-direction:column;gap:9px;background:#fff;border-radius:20px;padding:26px 24px;box-shadow:0 14px 44px rgba(20,29,24,.1)}
.play-controls label{margin-top:8px}
.play-controls input{padding:13px 15px;border:1.5px solid rgba(20,29,24,.15);border-radius:12px;font-family:Inter,sans-serif;font-size:14.5px;background:var(--paper)}
.play-controls input:focus{border-color:var(--lime);outline:none}
.play-swatches{display:flex;gap:9px;margin-bottom:8px}
.sw{width:34px;height:34px;border-radius:50%;border:2.5px solid transparent;cursor:pointer;background:linear-gradient(135deg,var(--pa,#2f6b2a),var(--pb,#7cb52e))}
.sw:nth-child(1){background:linear-gradient(135deg,#2f6b2a,#7cb52e)}
.sw:nth-child(2){background:linear-gradient(135deg,#8a6410,#d9a93c)}
.sw:nth-child(3){background:linear-gradient(135deg,#0c3b57,#1fa8d4)}
.sw:nth-child(4){background:linear-gradient(135deg,#3b2b8f,#7a63e8)}
.sw.on{border-color:var(--ink);box-shadow:0 0 0 3px #fff inset}
.play-controls .btn{margin-top:12px;border:0;cursor:pointer}
.play-out{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap}
.pfmt{--pa:#2f6b2a;--pb:#7cb52e;position:relative;background:#fff;border-radius:12px;box-shadow:0 16px 44px rgba(20,29,24,.14);padding:16px 14px 14px;display:flex;flex-direction:column;gap:9px;transition:all .5s var(--ease)}
.pf-a{width:220px;aspect-ratio:6/5}
.pf-b{width:180px;aspect-ratio:2/3}
.pf-c{width:160px;aspect-ratio:1/2}
.pf-size{position:absolute;top:-11px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.14em;font-weight:600;padding:4px 11px;border-radius:999px}
.pf-brand{font-style:normal;font-family:Manrope,sans-serif;font-weight:800;font-size:13px;color:var(--pa);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf-media{flex:1;border-radius:8px;background:linear-gradient(140deg,var(--pa),var(--pb));opacity:.85;min-height:34px}
.pf-a .pf-media{display:none}
.pf-a{justify-content:space-between}
.pf-line{font-family:Manrope,sans-serif;font-weight:800;font-size:14.5px;line-height:1.25;letter-spacing:-.01em;overflow:hidden}
.pf-cta{align-self:flex-start;background:var(--pa);color:#fff;font-weight:700;font-size:11.5px;padding:7px 16px;border-radius:999px}
@media(max-width:900px){.play-grid{grid-template-columns:1fr}.play-out{justify-content:center}}

/* footer contact + socials */
.foot-soc{display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.fs-mail{font-weight:700;color:var(--green)!important;font-size:14px}
.fs-mail:hover{text-decoration:underline}
.foot-soc span{display:flex;gap:16px;font-size:12.5px;color:var(--dim)}
.foot-soc span a:hover{color:var(--ink)}
@media(max-width:700px){.foot-soc{align-items:flex-start}}
/* cta-link (shared) */
.cta-link{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:15px;color:var(--ink);padding:15px 6px;border-bottom:2px solid rgba(20,29,24,.2);transition:border-color .3s,gap .3s var(--ease)}
.cta-link:hover{border-color:var(--green);gap:14px;color:var(--green)}
/* journey timeline */
.tline{display:grid;grid-template-columns:repeat(5,1fr);gap:0;position:relative;padding-top:26px}
.tline::before{content:"";position:absolute;top:34px;left:4%;right:4%;height:2px;background:linear-gradient(90deg,rgba(47,107,42,.15),var(--lime) 60%,var(--gold))}
.tl-item{position:relative;padding:34px 18px 6px 0}
.tl-item::before{content:"";position:absolute;top:27px;left:0;width:16px;height:16px;border-radius:50%;background:var(--paper);border:3.5px solid var(--green)}
.tl-now::before{background:var(--lime);border-color:var(--lime);box-shadow:0 0 0 6px rgba(124,181,46,.25)}
.tl-item b{font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.16em;color:var(--green);font-weight:600}
.tl-item h3{font-family:Manrope,sans-serif;font-weight:800;font-size:17px;margin:6px 0 6px;letter-spacing:-.01em}
.tl-item p{color:var(--dim);font-size:13px;line-height:1.6}
.tl-now h3{background:linear-gradient(100deg,var(--green),var(--lime));-webkit-background-clip:text;background-clip:text;color:transparent}
@media(max-width:960px){.tline{grid-template-columns:1fr;padding-left:26px}.tline::before{left:7px;right:auto;top:4%;bottom:4%;width:2px;height:auto;background:linear-gradient(180deg,rgba(47,107,42,.15),var(--lime) 60%,var(--gold))}.tl-item{padding:0 0 30px 22px}.tl-item::before{top:4px;left:-26px}}
/* the name / footprint finale */
.name-sec{background:linear-gradient(180deg,transparent,var(--acc-soft) 120%)}
.name-sec h2 em{font-style:normal}
.name-live{font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.14em;color:var(--green);font-weight:600;margin-top:14px!important}
.ig-two{grid-template-columns:repeat(2,1fr)}

/* ===== scroll-morph hero (About) ===== */
.morph-hero{position:relative;height:100svh;min-height:560px;overflow:hidden;background:var(--paper)}
.mh-stage{position:absolute;inset:0;perspective:1000px}
.mh-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;z-index:1;pointer-events:none;width:min(90vw,900px);transition:opacity .3s}
.mh-center h1{font-family:Manrope,sans-serif;font-weight:800;font-size:clamp(30px,4.8vw,64px);line-height:1.08;letter-spacing:-.025em;margin-top:18px}
.mh-center h1 em{font-style:normal;background:linear-gradient(100deg,var(--green),var(--lime));-webkit-background-clip:text;background-clip:text;color:transparent}
.mh-hint{margin-top:22px;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.26em;color:var(--dim);font-weight:600;animation:blinkmh 2.2s infinite}
@keyframes blinkmh{50%{opacity:.35}}
.mh-arc{position:absolute;left:50%;top:12%;transform:translate(-50%,0);text-align:center;z-index:10;opacity:0;width:min(92vw,680px)}
.mh-arc h2{font-family:Manrope,sans-serif;font-weight:800;font-size:clamp(26px,3.6vw,48px);letter-spacing:-.02em;line-height:1.1}
.mh-arc p{color:var(--dim);line-height:1.7;margin-top:14px;font-size:15px}
.mh-arc .cta-row{justify-content:center;margin-top:24px}
.mcard{position:absolute;left:50%;top:50%;width:64px;height:90px;will-change:transform,opacity;cursor:pointer}
.mc-in{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .6s var(--ease)}
.mcard:hover .mc-in{transform:rotateY(180deg)}
.mc-face,.mc-back{position:absolute;inset:0;border-radius:10px;overflow:hidden;backface-visibility:hidden;box-shadow:0 10px 26px rgba(20,29,24,.22)}
.mc-face img{width:100%;height:100%;object-fit:cover;display:block}
.mc-back{transform:rotateY(180deg);background:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}
.mc-back small{font-family:'JetBrains Mono',monospace;font-size:5.5px;letter-spacing:.16em;color:#a7d95e;font-weight:600;text-align:center;padding:0 4px}
.mc-back b{font-family:Manrope,sans-serif;font-weight:800;font-size:10px;color:#fff}
@media(max-width:768px){.mcard{width:48px;height:68px}}
@media(prefers-reduced-motion:reduce){.mh-hint{animation:none}.mcard .mc-in{transition:none}}

/* ===== gravity field pages ===== */
#gravBg{position:fixed;inset:0;z-index:0;transition:background 1.2s cubic-bezier(.65,0,.35,1)}
#gravWrap{position:fixed;inset:0;z-index:1;pointer-events:none}
#gravWrap canvas{width:100%;height:100%;display:block}
body.grav main,body.grav footer,body.grav .mob-panel{position:relative;z-index:2}
body.grav nav.lab-nav{z-index:40}
.gsec{position:relative;min-height:100svh;display:flex;pointer-events:none}
.gsec>*{pointer-events:auto}
.gsec .wrap{width:100%}
.g-eyebrow{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.25em;text-transform:uppercase;color:var(--green);font-weight:600}
.g-h{font-family:Manrope,sans-serif;font-weight:800;letter-spacing:-.03em;line-height:.95;font-size:clamp(42px,7vw,92px);color:var(--ink);margin-top:22px}
.g-hero{align-items:flex-end;padding-bottom:7vh}
.g-hero .g-row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:32px}
.g-hero .g-right{max-width:290px}
.g-hero .g-right p{font-size:15px;line-height:1.4;color:#39463f;font-weight:500}
.g-hero .g-right small{display:block;margin-top:18px;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim)}
.g-scrollcue{display:flex;align-items:center;gap:8px;margin-top:16px;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.2em;color:var(--dim);animation:gpulse 1.8s ease-in-out infinite}
@keyframes gpulse{50%{opacity:.35}}
.g-mid{align-items:center}
.g-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:56px;align-items:start}
.g-body{max-width:520px;margin-top:30px;font-size:17px;line-height:1.6;color:#39463f}
.g-cards{display:flex;flex-direction:column;gap:14px}
.g-card{border-radius:22px;background:rgba(255,255,255,.28);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.7);box-shadow:0 14px 40px -12px rgba(47,107,42,.2);padding:20px 24px;transition:transform .4s var(--ease)}
.g-card:hover{transform:translateY(-3px)}
.g-card .gc-top{display:flex;align-items:center;justify-content:space-between;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.14em;color:var(--dim);text-transform:uppercase}
.g-card .gc-top i{width:10px;height:10px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#a3d95e,#2f6b2a);box-shadow:0 0 8px rgba(124,181,46,.6)}
.g-card b{display:block;margin-top:8px;font-family:Manrope,sans-serif;font-weight:800;font-size:18px;color:var(--ink)}
.g-card p{margin-top:3px;font-size:13px;color:var(--dim)}
.g-shape{flex-direction:column;justify-content:space-between;padding:14vh 0}
.g-shape .g-end{align-self:flex-end;max-width:390px;text-align:right}
.g-pill{display:inline-flex;align-items:center;gap:8px;margin-top:26px;padding:10px 18px;border-radius:999px;border:1px solid rgba(255,255,255,.6);background:rgba(255,255,255,.4);backdrop-filter:blur(8px);font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#39463f}
.g-rel{flex-direction:column;align-items:center;justify-content:center;text-align:center}
.g-rel .g-body{margin-left:auto;margin-right:auto;text-align:center;max-width:440px}
@media(max-width:900px){.g-grid{grid-template-columns:1fr}.g-shape .g-end{align-self:flex-start;text-align:left}}

/* ---------- blog listing ---------- */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.blog-card{display:flex;flex-direction:column;background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 14px 44px rgba(20,29,24,.1);border:1px solid rgba(20,29,24,.05);transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.blog-card:hover{transform:translateY(-6px);box-shadow:0 26px 60px rgba(20,29,24,.16)}
.blog-card .bc-img{position:relative;aspect-ratio:4/2.7;overflow:hidden;background:#141d18}
.blog-card .bc-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s var(--ease)}
.blog-card:hover .bc-img img{transform:scale(1.05)}
.blog-card .bc-tag{position:absolute;left:16px;top:16px;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.16em;color:#fff;background:rgba(20,29,24,.55);backdrop-filter:blur(6px);padding:6px 12px;border-radius:999px;text-transform:uppercase}
.blog-card .bc-body{padding:22px 24px 26px;display:flex;flex-direction:column;flex:1;gap:10px}
.blog-card .bc-meta{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.1em;color:var(--dim);text-transform:uppercase}
.blog-card h3{font-family:Manrope,sans-serif;font-weight:800;font-size:19px;line-height:1.28;letter-spacing:-.01em;margin:0}
.blog-card p{color:var(--dim);font-size:14px;line-height:1.6;margin:0;flex:1}
.blog-card .bc-go{display:inline-flex;align-items:center;gap:8px;margin-top:6px;font-weight:700;font-size:13.5px;color:var(--green)}
.blog-card .bc-go svg{width:14px;height:14px;transition:transform .3s var(--ease)}
.blog-card:hover .bc-go svg{transform:translateX(4px)}
.blog-feat{display:grid;grid-template-columns:1.15fr 1fr;gap:0;background:#141d18;border-radius:26px;overflow:hidden;margin-bottom:40px}
.blog-feat .bf-img{position:relative;min-height:320px}
.blog-feat .bf-img img{width:100%;height:100%;object-fit:cover;display:block;position:absolute;inset:0}
.blog-feat .bf-body{padding:clamp(28px,3.4vw,52px);display:flex;flex-direction:column;justify-content:center;gap:14px;color:#fff}
.blog-feat .bf-tag{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.18em;color:var(--lime);text-transform:uppercase}
.blog-feat h2{font-family:Manrope,sans-serif;font-weight:800;font-size:clamp(24px,2.6vw,36px);line-height:1.15;letter-spacing:-.02em;margin:0}
.blog-feat p{color:rgba(255,255,255,.75);font-size:15.5px;line-height:1.65;margin:0}
.blog-feat .bc-go{display:inline-flex;align-items:center;gap:8px;margin-top:4px;font-weight:700;font-size:14px;color:var(--lime)}
@media(max-width:900px){.blog-grid{grid-template-columns:1fr 1fr}.blog-feat{grid-template-columns:1fr}.blog-feat .bf-img{min-height:220px}}
@media(max-width:640px){.blog-grid{grid-template-columns:1fr}}

/* ---------- blog article ---------- */
.article-hero{position:relative;padding:150px 0 0;overflow:hidden}
.article-hero .wrap{position:relative}
.article-crumb{display:flex;align-items:center;gap:8px;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.1em;color:var(--dim);text-transform:uppercase;margin-bottom:22px}
.article-crumb a{color:var(--dim);font-weight:600}
.article-crumb a:hover{color:var(--green)}
.article-hero h1{font-family:Manrope,sans-serif;font-weight:800;font-size:clamp(30px,4.6vw,54px);line-height:1.1;letter-spacing:-.025em;max-width:920px}
.article-meta{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-top:24px;font-family:'JetBrains Mono',monospace;font-size:11.5px;letter-spacing:.08em;color:var(--dim);text-transform:uppercase}
.article-meta span{display:inline-flex;align-items:center;gap:8px}
.article-meta i{width:5px;height:5px;border-radius:50%;background:var(--lime)}
.article-hero-img{margin-top:40px;border-radius:24px;overflow:hidden;aspect-ratio:16/8.2;box-shadow:0 30px 80px rgba(20,29,24,.18)}
.article-hero-img img{width:100%;height:100%;object-fit:cover;display:block}
.article-body{max-width:740px;margin:0 auto;padding:56px 0 40px;font-size:17.5px;line-height:1.85;color:#2c352f}
.article-body p{margin:0 0 24px}
.article-body p:last-child{margin-bottom:0}
.article-body h2{font-family:Manrope,sans-serif;font-weight:800;font-size:clamp(22px,2.6vw,30px);letter-spacing:-.015em;color:var(--ink);margin:52px 0 20px;line-height:1.25}
.article-body h2:first-child{margin-top:0}
.article-body strong{color:var(--ink);font-weight:700}
.article-body em{font-style:italic}
.article-body ul{margin:0 0 24px;padding-left:22px}
.article-body li{margin:8px 0}
.article-pull{font-family:Manrope,sans-serif;font-weight:700;font-size:clamp(19px,2vw,24px);line-height:1.45;color:var(--ink);border-left:3px solid var(--lime);padding-left:24px;margin:40px 0}
.article-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:36px 0}
.article-stats div{background:#fff;border:1px solid rgba(20,29,24,.08);border-radius:16px;padding:20px}
.article-stats b{display:block;font-family:Manrope,sans-serif;font-weight:800;font-size:28px;color:var(--green)}
.article-stats span{display:block;margin-top:6px;font-size:13px;color:var(--dim);line-height:1.4}
.article-foot{max-width:740px;margin:0 auto;padding:16px 0 80px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid rgba(20,29,24,.1);padding-top:32px}
.article-share{display:flex;align-items:center;gap:12px}
.article-share span{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.1em;color:var(--dim);text-transform:uppercase}
.article-share a{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid rgba(20,29,24,.12);color:var(--ink);transition:background .3s,color .3s}
.article-share a:hover{background:var(--ink);color:#fff}
.article-back{font-weight:700;font-size:14px;color:var(--green);display:inline-flex;align-items:center;gap:8px}
.related-sec{background:#fff;border-top:1px solid rgba(20,29,24,.08)}
@media(max-width:760px){.article-hero{padding-top:118px}.article-hero-img{border-radius:16px;aspect-ratio:16/11}.article-body{font-size:16px}.article-foot{flex-direction:column;align-items:flex-start}.article-stats{grid-template-columns:1fr}}

/* ===== shared dark footer (hfoot) - used across all pages ===== */
.hfoot{position:relative;overflow:hidden;border-top:1px solid rgba(255,255,255,.08);background:#080d09;padding:70px 0 34px;margin-top:60px}
.hf-globe-mark{position:absolute;left:-60px;top:-90px;width:420px;height:420px;opacity:.07;pointer-events:none;z-index:0;filter:grayscale(0.15)}
.hfoot .wrap{position:relative;z-index:1}
@media(max-width:900px){.hf-globe-mark{width:280px;height:280px;left:-50px;top:-40px}}
.hf-cta{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:28px;padding-bottom:44px;border-bottom:1px solid rgba(255,255,255,.1)}
.hf-cta b{display:block;font-family:Manrope,sans-serif;font-weight:800;font-size:clamp(30px,4.4vw,58px);line-height:1.02;letter-spacing:-.025em;color:#fff;margin-top:14px}
.hf-cta b .hf-grad{background:linear-gradient(100deg,var(--lime),var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent}
.hf-cta-r{display:flex;flex-direction:column;align-items:flex-end;gap:14px}
.hf-demo{display:inline-flex;align-items:center;gap:10px;background:var(--lime);color:#12200f;font-weight:700;font-size:16px;border-radius:12px;padding:16px 30px;transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.hf-demo:hover{transform:translateY(-3px);box-shadow:0 16px 44px rgba(124,181,46,.35)}
.hf-mail{font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.06em;color:#9fb0a3}
.hf-mail:hover{color:#fff}
.hf-cols{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:36px;padding:46px 0}
.hf-brand img{height:64px;width:auto}
.hf-brand p{color:#9fb0a3;font-size:13.5px;line-height:1.65;max-width:320px;margin:16px 0 20px}
.hf-soc{display:flex;gap:10px}
.hf-soc a{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.18);color:rgba(255,255,255,.7);transition:.3s}
.hf-soc a:hover{color:#12200f;background:var(--lime);border-color:var(--lime)}
.hf-cols nav{display:flex;flex-direction:column;gap:11px}
.hf-cols nav b{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.22em;color:rgba(255,255,255,.4);font-weight:600;margin-bottom:6px}
.hf-cols nav a{color:#c9d4cb;font-size:14px;transition:color .25s}
.hf-cols nav a:hover{color:var(--lime)}
.hf-bot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px;padding-top:26px;border-top:1px solid rgba(255,255,255,.1);font-size:12px;color:rgba(255,255,255,.45)}
.hf-bot .huella-sign{font-style:normal;color:var(--lime);font-weight:600}
.hfoot .lang>button{border-color:rgba(255,255,255,.3);color:#fff}
@media(max-width:860px){.hf-cols{grid-template-columns:1fr 1fr}.hf-cta-r{align-items:flex-start}}
