:root{
    --abyss:#05161a; --ocean:#0c2f38; --ocean-2:#103f49;
    --teal:#1d7d7e; --sand:#ece2cf; --cream:#f7f1e4; --ink:#0a181b;
    --firecrown:#2f6b3a; --firecrown-soft:#7bb585;
    --display:"Fraunces",Georgia,serif; --body:"Archivo",system-ui,sans-serif;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{font-family:var(--body);background:var(--abyss);color:var(--cream);overflow-x:hidden;line-height:1.6;-webkit-font-smoothing:antialiased}
  body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.04;background-image:url("../images/noise.svg")}
  ::selection{background:var(--firecrown);color:#fff}
  img{display:block;max-width:100%}

  /* NAV */
  nav{position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;justify-content:space-between;align-items:center;padding:1.3rem clamp(1.2rem,5vw,4rem);transition:background .5s,padding .5s,backdrop-filter .5s}
  nav.scrolled{background:rgba(5,22,26,.85);backdrop-filter:blur(12px);padding:.8rem clamp(1.2rem,5vw,4rem);border-bottom:1px solid rgba(47,107,58,.18)}
  .brand{display:flex;align-items:center}
  .brand img{height:58px;width:auto;transition:height .5s}
  nav.scrolled .brand img{height:46px}
  .navlinks{display:flex;gap:2rem;list-style:none;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase}
  .navlinks a{color:var(--cream);text-decoration:none;opacity:.8;transition:opacity .3s,color .3s;position:relative}
  .navlinks a:hover{opacity:1;color:var(--firecrown-soft)}
  .navlinks a::after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:1px;background:var(--firecrown);transition:width .35s}
  .navlinks a:hover::after{width:100%}
  @media(max-width:820px){.navlinks{display:none}}
  .nav-right{display:flex;align-items:center;gap:1.8rem}
  .donate{padding:.62rem 1.4rem;background:var(--firecrown);color:#fff;text-decoration:none;border-radius:40px;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;transition:transform .3s,box-shadow .3s;white-space:nowrap}
  .donate:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(47,107,58,.42)}

  /* PARALLAX bg */
  .parallax{position:relative;overflow:hidden}
  .pbg{position:absolute;top:-18%;left:0;width:100%;height:136%;background-size:cover;background-position:center;will-change:transform}

  /* HERO */
  .hero{height:100vh;min-height:620px;display:flex;align-items:flex-end}
  .hero .ov{position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,22,26,.55) 0%,rgba(5,22,26,.15) 35%,rgba(5,22,26,.55) 75%,rgba(5,22,26,.92) 100%);z-index:2}
  .hero-inner{position:relative;z-index:3;width:100%;max-width:1300px;margin:0 auto;padding:0 clamp(1.2rem,5vw,4rem) clamp(3rem,7vw,5.5rem)}
  .eyebrow{font-size:.8rem;letter-spacing:.34em;text-transform:uppercase;color:var(--firecrown-soft);margin-bottom:1.4rem}
  .hero h1{font-family:var(--display);font-weight:300;font-size:clamp(2.6rem,8vw,6.8rem);line-height:.97;letter-spacing:-.02em;max-width:16ch}
  .hero h1 em{font-style:italic;font-weight:500;color:var(--firecrown-soft)}
  .hero h1 span{display:block}
  .hero p.sub{margin-top:1.8rem;max-width:50ch;font-size:clamp(1rem,1.8vw,1.22rem);color:rgba(247,241,228,.85);font-weight:300}
  .scroll-cue{position:absolute;bottom:1.6rem;right:clamp(1.2rem,5vw,4rem);z-index:4;font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(247,241,228,.6);display:flex;flex-direction:column;align-items:center;gap:.55rem}
  @media(max-width:760px){.scroll-cue{display:none}}
  @media (prefers-reduced-motion: no-preference){
    .eyebrow{animation:fadeUp 1s .25s both}
    .hero h1 span{animation:fadeUp 1.1s both}
    .hero h1 span:nth-child(1){animation-delay:.45s}
    .hero h1 span:nth-child(2){animation-delay:.65s}
    .hero p.sub{animation:fadeUp 1.1s .9s both}
    .scroll-cue{animation:fadeUp 1s 1.3s both}
  }
  .scroll-cue .line{width:1px;height:40px;background:linear-gradient(var(--firecrown),transparent);animation:cue 2s infinite}
  @keyframes cue{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
  @keyframes fadeUp{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}

  /* SECTION SCAFFOLD */
  .wrap{max-width:1240px;margin:0 auto;padding:clamp(5rem,12vw,9rem) clamp(1.2rem,5vw,4rem)}
  .light{background:var(--cream);color:var(--ink)}
  .deep{background:var(--ocean)}
  .label{font-size:.76rem;letter-spacing:.3em;text-transform:uppercase;color:var(--firecrown);margin-bottom:1.4rem;display:flex;align-items:center;gap:.8rem}
  .label::before{content:"";width:34px;height:1px;background:var(--firecrown)}

  /* MISIÓN */
  .mision{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
  @media(max-width:860px){.mision{grid-template-columns:1fr}}
  .mision h2{font-family:var(--display);font-weight:300;font-size:clamp(2rem,4.6vw,3.6rem);line-height:1.05;letter-spacing:-.01em;max-width:16ch}
  .mision h2 em{font-style:italic;color:var(--teal)}
  .mision p{margin-top:1.4rem;font-size:clamp(1.02rem,1.6vw,1.2rem);max-width:48ch;color:#33444a;font-weight:300}
  .framed{border-radius:6px;overflow:hidden;box-shadow:0 30px 60px -25px rgba(5,22,26,.5)}
  .framed img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}

  /* PILLARS */
  .pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem;margin-top:3.4rem}
  @media(max-width:900px){.pillars{grid-template-columns:repeat(2,1fr)}}
  @media(max-width:520px){.pillars{grid-template-columns:1fr}}
  .pillar{position:relative;height:clamp(360px,42vw,440px);border-radius:6px;overflow:hidden;display:block;text-decoration:none;color:var(--cream)}
  .pillar .pic{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform 1s cubic-bezier(.2,.8,.2,1)}
  .pillar:hover .pic{transform:scale(1.07)}
  .pillar .grad{position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,22,26,.1) 0%,rgba(5,22,26,.15) 40%,rgba(5,22,26,.88) 100%)}
  .pillar .pc{position:absolute;left:0;right:0;bottom:0;padding:1.6rem 1.5rem}
  .pillar .num{font-family:var(--display);font-size:.95rem;color:var(--firecrown-soft)}
  .pillar h3{font-family:var(--display);font-weight:500;font-size:1.55rem;margin:.5rem 0 .55rem;letter-spacing:-.01em}
  .pillar p{font-size:.9rem;color:rgba(247,241,228,.82);font-weight:300;max-height:0;opacity:0;overflow:hidden;transition:max-height .6s,opacity .5s,margin .6s}
  .pillar:hover p{max-height:130px;opacity:1}

  /* VISIÓN band */
  .band{min-height:88vh;display:flex;align-items:center}
  .band .ov{position:absolute;inset:0;z-index:2;background:linear-gradient(90deg,rgba(5,22,26,.78),rgba(5,22,26,.35) 65%,rgba(5,22,26,.2))}
  .band .wrap{position:relative;z-index:3}
  .band blockquote{font-family:var(--display);font-weight:300;font-size:clamp(1.9rem,4.4vw,3.5rem);line-height:1.13;max-width:20ch;letter-spacing:-.01em}
  .band blockquote em{font-style:italic;color:var(--firecrown-soft)}
  .band cite{display:block;margin-top:1.8rem;font-style:normal;font-size:.82rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(247,241,228,.6)}

  /* GALLERY carousel */
  .gal-head h2{font-family:var(--display);font-weight:300;font-size:clamp(2rem,5vw,3.4rem);letter-spacing:-.01em}
  .carousel{position:relative;margin-top:3rem;border-radius:8px;overflow:hidden;background:#06181c;box-shadow:0 40px 80px -30px rgba(5,22,26,.55)}
  .stage{position:relative;width:100%;aspect-ratio:16/9;touch-action:pan-y;user-select:none}
  @media(max-width:620px){.stage{aspect-ratio:3/4}}
  .slide{position:absolute;inset:0;opacity:0;transition:opacity .8s ease;pointer-events:none}
  .slide.active{opacity:1;pointer-events:auto}
  .slide img{width:100%;height:100%;object-fit:cover}
  .slide .cap{position:absolute;left:0;right:0;bottom:0;padding:2.6rem 1.7rem 1.3rem;font-size:.95rem;color:#fff;font-weight:300;background:linear-gradient(transparent,rgba(5,22,26,.85))}
  .cbtn{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:48px;height:48px;border:none;border-radius:50%;background:rgba(5,22,26,.42);color:#fff;font-size:1.4rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px);transition:background .3s}
  .cbtn:hover{background:var(--firecrown)}
  .cbtn.prev{left:1rem}.cbtn.next{right:1rem}
  @media(max-width:620px){.cbtn{width:52px;height:52px;font-size:1.6rem;background:rgba(5,22,26,.6)}.cbtn.prev{left:.6rem}.cbtn.next{right:.6rem}}
  .counter{position:absolute;top:1rem;right:1.1rem;z-index:5;font-size:.74rem;letter-spacing:.14em;color:#fff;background:rgba(5,22,26,.42);padding:.35rem .7rem;border-radius:20px;backdrop-filter:blur(4px);font-variant-numeric:tabular-nums}
  .dots{display:flex;gap:.5rem;justify-content:center;align-items:center;padding:1.1rem;background:#06181c}
  .dot{width:8px;height:8px;border-radius:50%;border:none;background:rgba(247,241,228,.28);cursor:pointer;transition:.3s;padding:0}
  .dot.active{background:var(--firecrown);width:24px;border-radius:5px}

  /* TERRITORIO */
  .terr{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center}
  @media(max-width:860px){.terr{grid-template-columns:1fr}}
  .terr h2{font-family:var(--display);font-weight:300;font-size:clamp(1.9rem,4.4vw,3.2rem);line-height:1.05;letter-spacing:-.01em;margin-bottom:1.4rem}
  .terr p{color:rgba(247,241,228,.78);font-weight:300;max-width:44ch}
  .stat-row{display:flex;gap:2.4rem;margin-top:2.4rem;flex-wrap:wrap}
  .stat .n{font-family:var(--display);font-size:2.5rem;color:var(--firecrown-soft);line-height:1}
  .stat .l{font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(247,241,228,.6);margin-top:.4rem}
  .terr-imgs{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;gap:.8rem;height:clamp(320px,42vw,460px)}
  .terr-imgs img{width:100%;height:100%;object-fit:cover;border-radius:5px}
  .terr-imgs .big{grid-row:span 2}

  /* CONTACT / FOOTER */
  footer{background:var(--abyss);padding:clamp(4rem,9vw,6.5rem) clamp(1.2rem,5vw,4rem) 3rem}
  .foot-grid{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:3rem}
  @media(max-width:860px){.foot-grid{grid-template-columns:1fr;gap:2.4rem}}
  footer h2{font-family:var(--display);font-weight:300;font-size:clamp(2rem,5vw,3rem);letter-spacing:-.01em;line-height:1.04}
  footer h2 em{font-style:italic;color:var(--firecrown-soft)}
  .foot-logo{width:64px;margin-bottom:1.4rem}
  .foot-col h4{font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;color:var(--firecrown);margin-bottom:1rem}
  .foot-col a,.foot-col p{display:block;color:rgba(247,241,228,.8);text-decoration:none;font-weight:300;margin-bottom:.55rem;font-size:.95rem;transition:color .3s}
  .foot-col a:hover{color:var(--firecrown-soft)}
  .btn{display:inline-block;margin-top:1.5rem;padding:.95rem 2rem;background:var(--firecrown);color:#fff;text-decoration:none;border-radius:40px;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;transition:transform .3s,box-shadow .3s}
  .btn:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(47,107,58,.35)}
  .copy{max-width:1240px;margin:3.5rem auto 0;padding-top:2rem;border-top:1px solid rgba(247,241,228,.1);font-size:.78rem;color:rgba(247,241,228,.45);display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem}

  /* APOYA / DONACIÓN */
  .apoya{position:relative;display:flex;align-items:center;min-height:90vh}
  .apoya-ov{position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,rgba(5,22,26,.84),rgba(5,22,26,.72))}
  .apoya-inner{position:relative;z-index:3;max-width:780px}
  .apoya h2{font-family:var(--display);font-weight:300;font-size:clamp(2rem,5vw,3.5rem);letter-spacing:-.01em;line-height:1.04;margin-bottom:1.1rem}
  .apoya h2 em{font-style:italic;color:var(--firecrown-soft)}
  .apoya-lead{font-size:clamp(1rem,1.7vw,1.18rem);color:rgba(247,241,228,.85);font-weight:300;max-width:56ch;margin-bottom:2.3rem}
  .dona-card{background:rgba(247,241,228,.06);border:1px solid rgba(247,241,228,.14);backdrop-filter:blur(8px);border-radius:14px;padding:clamp(1.4rem,3vw,2.2rem)}
  .freq{display:inline-flex;background:rgba(5,22,26,.5);border-radius:40px;padding:.3rem;margin-bottom:1.5rem}
  .freq-btn{border:none;background:transparent;color:rgba(247,241,228,.72);padding:.55rem 1.5rem;border-radius:40px;cursor:pointer;font-size:.82rem;letter-spacing:.06em;font-weight:600;transition:.3s;font-family:var(--body)}
  .freq-btn.active{background:var(--firecrown);color:#fff}
  .amounts{display:flex;flex-wrap:wrap;gap:.7rem;margin-bottom:1.7rem}
  .amt{border:1px solid rgba(247,241,228,.25);background:transparent;color:var(--cream);padding:.8rem 1.3rem;border-radius:9px;cursor:pointer;font-size:1rem;font-weight:500;transition:.25s;font-variant-numeric:tabular-nums;font-family:var(--body)}
  .amt:hover{border-color:var(--firecrown-soft)}
  .amt.active{background:var(--firecrown);border-color:var(--firecrown);color:#fff}
  .amt-custom{flex:1;min-width:160px;background:transparent;border:1px solid rgba(247,241,228,.25);border-radius:9px;color:var(--cream);padding:.8rem 1.1rem;font-size:1rem;font-family:var(--body)}
  .amt-custom::placeholder{color:rgba(247,241,228,.45)}
  .amt-custom:focus{outline:none;border-color:var(--firecrown-soft)}
  .dona-cta{display:block;text-align:center;background:var(--firecrown);color:#fff;text-decoration:none;padding:1.1rem;border-radius:11px;font-size:.95rem;letter-spacing:.06em;text-transform:uppercase;font-weight:700;transition:transform .3s,box-shadow .3s}
  .dona-cta:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(47,107,58,.42)}
  .dona-note{margin-top:1rem;font-size:.76rem;color:rgba(247,241,228,.55);text-align:center}
  .dona-embed{background:#fff;border-radius:14px;padding:8px;max-width:516px;box-shadow:0 30px 70px -30px rgba(5,22,26,.6)}
  .dona-embed iframe{display:block;border-radius:10px}
  .dona-fallback{display:inline-block;margin-top:1.4rem;color:var(--firecrown-soft);text-decoration:none;font-size:.9rem;letter-spacing:.04em;border-bottom:1px solid rgba(123,181,133,.5);padding-bottom:2px;transition:color .3s,border-color .3s}
  .dona-fallback:hover{color:#fff;border-color:#fff}
  .reveal{opacity:1}
  @media (prefers-reduced-motion: no-preference){
    @supports (animation-timeline: view()){
      .reveal{opacity:0;animation:revealUp .9s linear both;animation-timeline:view();animation-range:entry 0% entry 60%}
    }
  }
  @keyframes revealUp{from{opacity:0;transform:translateY(34px)}to{opacity:1;transform:none}}
