:root{
  --papel:#F7F5EF;
  --papel-2:#EFECE1;
  --tinta:#1A231A;
  --tinta-suave:#5B6658;
  --tinta-claro:#8A9487;
  --verde:#70B060;
  --verde-oscuro:#4E8A3E;
  --verde-profundo:#1F3320;
  --verde-claro:#EAF3E3;
  --linea:#E4DFD0;
  --blanco:#FFFFFF;
  --fuente:"Manrope",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --fuente-titulos:"Fraunces",Georgia,"Times New Roman",serif;
  --radio:16px;
  --sombra:0 30px 70px -34px rgba(26,35,26,.5);
  --sombra-suave:0 12px 34px -20px rgba(26,35,26,.3);
}

*{box-sizing:border-box;margin:0;padding:0}

html{scroll-behavior:smooth;scroll-padding-top:90px;-webkit-text-size-adjust:100%}

body{
  font-family:var(--fuente);
  color:var(--tinta);
  background:var(--papel);
  line-height:1.65;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

body::after{
  content:"";position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:.04;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}

::selection{background:var(--verde);color:#fff}

img{max-width:100%;display:block;height:auto}

a{color:var(--verde-oscuro);text-decoration:none;transition:color .2s ease}
a:hover{color:var(--verde)}

h1,h2,h3,h4{font-family:var(--fuente-titulos);font-weight:600;line-height:1.05;letter-spacing:-.02em;color:var(--tinta);text-wrap:balance}

.contenedor{width:min(1160px,90%);margin-inline:auto}

.ceja{display:inline-flex;align-items:center;gap:10px;font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--verde-oscuro)}
.ceja::before{content:"";width:26px;height:2px;background:var(--verde)}

/* ---------- Cabecera ---------- */
.cabecera{position:sticky;top:0;z-index:60;background:rgba(247,245,239,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--linea)}
.cabecera__interior{display:flex;align-items:center;gap:18px;height:76px}
.marca{display:flex;align-items:center;gap:11px;color:var(--tinta)}
.marca:hover{color:var(--tinta)}
.marca__logo{width:34px;height:34px;object-fit:contain}
.marca__texto{font-family:var(--fuente-titulos);font-weight:600;font-size:1.25rem;letter-spacing:-.01em}

.menu{display:flex;align-items:center;gap:4px;margin-left:auto}
.menu a{padding:8px 14px;border-radius:999px;color:var(--tinta-suave);font-weight:600;font-size:.92rem;transition:background .2s ease,color .2s ease}
.menu a:hover{background:var(--verde-claro);color:var(--verde-oscuro)}
.menu a.activo{background:var(--verde-claro);color:var(--verde-oscuro)}
.menu .idioma{font-size:.8rem;font-weight:800;letter-spacing:.05em}
.menu__sep{width:1px;height:20px;background:var(--linea);margin:0 8px}
.menu__boton{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;background:none;border:0;cursor:pointer;border-radius:10px;margin-left:auto}
.menu__boton span{display:block;width:24px;height:2px;background:var(--tinta);border-radius:2px;transition:transform .3s ease,opacity .3s ease;margin-inline:auto}
.menu__boton.activo span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu__boton.activo span:nth-child(2){opacity:0}
.menu__boton.activo span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---------- Hero ---------- */
.hero{position:relative;padding:96px 0 88px;overflow:hidden}
.hero__interior{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center}
.hero__titulo{font-size:clamp(3.4rem,9vw,7rem);font-weight:600;letter-spacing:-.04em;line-height:.94;margin:22px 0 26px}
.hero__bajada{font-size:clamp(1.1rem,2vw,1.35rem);line-height:1.55;color:var(--tinta-suave);max-width:34ch}
.hero__fundador{margin-top:16px;font-size:.95rem;color:var(--tinta-claro)}
.hero__fundador strong{color:var(--verde-oscuro)}
.hero__acciones{display:flex;gap:14px;margin-top:34px;flex-wrap:wrap}
.hero__logo{position:relative;display:grid;place-items:center}
.hero__halo{position:absolute;width:min(420px,80%);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,var(--verde-claro),transparent 65%);filter:blur(6px);z-index:-1}
.hero__logo img{width:min(320px,72%);object-fit:contain;filter:drop-shadow(0 30px 40px rgba(31,51,32,.22))}

/* ---------- Botones ---------- */
.boton{display:inline-flex;align-items:center;gap:9px;padding:14px 26px;border-radius:999px;font-weight:700;font-size:.95rem;border:1px solid transparent;transition:transform .2s ease,box-shadow .2s ease,background .2s ease,color .2s ease,border-color .2s ease}
.boton--verde{background:var(--verde);color:#fff;box-shadow:0 14px 30px -14px rgba(95,154,75,.8)}
.boton--verde:hover{background:var(--verde-oscuro);color:#fff;transform:translateY(-2px)}
.boton--fantasma{border-color:var(--tinta);color:var(--tinta);background:transparent}
.boton--fantasma:hover{border-color:var(--verde);color:var(--verde-oscuro);transform:translateY(-2px)}
/* ---------- Secciones ---------- */
.seccion{padding:96px 0}
.seccion--tinte{background:var(--papel-2);border-block:1px solid var(--linea)}
.seccion__cabecera{max-width:640px;margin-bottom:56px}
.seccion__titulo{font-size:clamp(2.2rem,5vw,3.6rem);margin:18px 0 16px}
.seccion__intro{color:var(--tinta-suave);font-size:1.05rem}

/* Sobre mí */
.sobre-mi{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:start}
.sobre-mi__cabecera h2{font-size:clamp(2rem,4.5vw,3.2rem);margin-top:18px}
.sobre-mi__cuerpo p{color:var(--tinta-suave);font-size:1.08rem;margin-bottom:20px}
.sobre-mi__cuerpo strong{color:var(--tinta);font-weight:700}

/* Stack */
.stack{display:flex;flex-wrap:wrap;gap:12px}
.stack__grupo{flex:1 1 220px;background:var(--blanco);border:1px solid var(--linea);border-radius:var(--radio);padding:22px;box-shadow:var(--sombra-suave)}
.stack__grupo h3{font-family:var(--fuente);font-size:.8rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--verde-oscuro);margin-bottom:14px}
.stack__items{display:flex;flex-wrap:wrap;gap:8px}
.stack__items span{font-size:.82rem;font-weight:600;color:var(--tinta-suave);background:var(--papel);border:1px solid var(--linea);border-radius:999px;padding:6px 12px}

/* Proyectos */
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.proyecto{position:relative;display:flex;flex-direction:column;gap:14px;background:var(--blanco);border:1px solid var(--linea);border-radius:var(--radio);padding:28px;box-shadow:var(--sombra-suave);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.proyecto:hover{transform:translateY(-5px);box-shadow:var(--sombra);border-color:var(--verde)}
.proyecto__top{display:flex;align-items:center;justify-content:space-between}
.proyecto__tag{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--verde-oscuro)}
.proyecto__num{font-family:var(--fuente-titulos);font-size:.95rem;color:var(--tinta-claro)}
.proyecto__titulo{font-size:1.45rem}
.proyecto__texto{color:var(--tinta-suave);font-size:.95rem;flex:1}
.proyecto__enlaces{display:flex;gap:18px;flex-wrap:wrap}
.flecha{font-size:.9rem;font-weight:700;color:var(--verde-oscuro)}
.flecha:hover{color:var(--verde)}
/* CTA contacto */
.cta{background:var(--verde-profundo);color:#EAF3E3;border-radius:26px;margin:0 auto 96px;width:min(1160px,90%)}
.cta__interior{padding:72px 56px;display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center}
.cta h2{color:#fff;font-size:clamp(1.9rem,4vw,3rem);margin:14px 0 10px}
.cta p{color:#C9DCC2;font-size:1.05rem;max-width:46ch}
.cta .boton--verde{background:#fff;color:var(--verde-profundo)}
.cta .boton--verde:hover{background:var(--verde-claro)}

/* Pie */
.pie{background:var(--verde-profundo);color:#C9DCC2;padding:56px 0 32px}
.pie__interior{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.pie__marca{display:flex;align-items:center;gap:12px;color:#fff}
.pie__marca img{width:30px;height:30px;object-fit:contain}
.pie__marca span{font-family:var(--fuente-titulos);font-size:1.1rem}
.pie__enlaces{display:flex;gap:20px;flex-wrap:wrap}
.pie__enlaces a{color:#C9DCC2;font-weight:600;font-size:.92rem}
.pie__enlaces a:hover{color:#fff}
.pie__fin{border-top:1px solid rgba(255,255,255,.14);margin-top:40px;padding-top:22px;font-size:.85rem;color:#9FB99A}

/* Contacto (página) */
.contacto-hero{padding:72px 0 40px}
.contacto-hero h1{font-size:clamp(2.6rem,6vw,4.6rem);margin:18px 0 16px}
.enlaces-contacto{display:grid;gap:14px;margin-top:40px}
.enlace-contacto{display:flex;align-items:center;gap:16px;background:var(--blanco);border:1px solid var(--linea);border-radius:var(--radio);padding:20px 24px;box-shadow:var(--sombra-suave);color:var(--tinta);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.enlace-contacto:hover{transform:translateY(-2px);box-shadow:var(--sombra);border-color:var(--verde);color:var(--tinta)}
.enlace-contacto__icono{display:grid;place-items:center;width:46px;height:46px;border-radius:12px;background:var(--verde-claro);color:var(--verde-oscuro);flex-shrink:0}
.enlace-contacto__texto{flex:1;min-width:0}
.enlace-contacto__texto strong{display:block;font-weight:700}
.enlace-contacto__texto span{font-size:.85rem;color:var(--tinta-suave)}
.enlace-contacto__flecha{color:var(--verde);font-size:1.2rem}
.formulario{background:var(--blanco);border:1px solid var(--linea);border-radius:22px;padding:36px;box-shadow:var(--sombra-suave);margin-top:44px}
.formulario h3{font-size:1.5rem;margin-bottom:6px}
.formulario__nota{color:var(--tinta-suave);font-size:.9rem;margin-bottom:24px}
.campo{margin-bottom:18px}
.campo label{display:block;font-size:.74rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--tinta-suave);margin-bottom:7px}
.campo input,.campo textarea{width:100%;padding:13px 16px;border:1px solid var(--linea);border-radius:12px;background:var(--papel);font-family:inherit;font-size:1rem;color:var(--tinta);transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}
.campo input:focus,.campo textarea:focus{outline:none;border-color:var(--verde);box-shadow:0 0 0 3px var(--verde-claro);background:#fff}
.campo textarea{resize:vertical;min-height:140px}

/* Animaciones */
.aparecer{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.aparecer.visible{opacity:1;transform:none}

/* Responsive */
@media (max-width:900px){
  .hero__interior{grid-template-columns:1fr}
  .hero__logo{order:-1}
  .hero__logo img{width:min(200px,50%)}
  .sobre-mi{grid-template-columns:1fr;gap:28px}
  .grid{grid-template-columns:1fr}
  .cta__interior{grid-template-columns:1fr;padding:48px 28px}
  .menu__boton{display:flex}
  .menu{position:absolute;top:76px;left:0;right:0;flex-direction:column;align-items:stretch;background:var(--papel);border-bottom:1px solid var(--linea);box-shadow:var(--sombra);padding:14px;gap:4px;display:none}
  .menu.abierto{display:flex}
  .menu a{text-align:center;padding:12px;border-radius:12px}
  .menu__sep{display:none}
}
@media (max-width:560px){
  .hero{padding:64px 0}
  .seccion{padding:64px 0}
  .cta{border-radius:18px}
  .formulario{padding:26px 20px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition:none !important;animation:none !important}
  .aparecer{opacity:1;transform:none}
}

