:root{
  --bg:#0A0A0C;--panel:#0E0E11;--ink:#F5F5F3;--prose:#B9B9BF;--soft:#8C8C93;--muted:#6C6C74;--faint:#3C3C42;
  --accent:#DF6B3E;--accent-soft:rgba(223,107,62,.12);
  --line:rgba(245,245,243,.10);--line2:rgba(245,245,243,.055)
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:"Archivo",-apple-system,system-ui,sans-serif;-webkit-font-smoothing:antialiased;line-height:1.6}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
::selection{background:var(--ink);color:#000}
.dot{display:inline-block;width:.16em;height:.16em;border-radius:50%;background:var(--accent);vertical-align:baseline;margin-left:.06em}
.shell{max-width:1200px;margin:0 auto}

/* NAV */
nav{position:sticky;top:0;z-index:50;background:rgba(10,10,12,.72);backdrop-filter:blur(12px);border-bottom:1px solid var(--line2)}
.nav-in{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;padding:19px 40px}
.wm{height:21px;width:auto;display:block;color:var(--ink)}
.links{display:flex;gap:26px;font-size:12.5px;font-weight:500;letter-spacing:.05em;color:var(--soft)}
.links a{transition:color .2s}.links a:hover{color:var(--ink)}
.menu-btn{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px;margin:-8px -8px -8px 0}
.menu-btn span{display:block;width:22px;height:2px;background:var(--ink);border-radius:2px;transition:transform .25s,opacity .25s}
nav.open .menu-btn span:nth-child(1){transform:translateY(7px) rotate(45deg)}
nav.open .menu-btn span:nth-child(2){opacity:0}
nav.open .menu-btn span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:900px){
  .nav-in{position:relative}
  .menu-btn{display:flex}
  .links{position:absolute;top:calc(100% + 1px);left:0;right:0;flex-direction:column;gap:0;background:rgba(10,10,12,.97);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding:4px 40px 16px;display:none}
  nav.open .links{display:flex}
  .links a{padding:13px 0;font-size:15px;color:var(--ink);border-top:1px solid var(--line2)}
  .links a:first-child{border-top:none}
}
@media(max-width:600px){.links{padding-left:22px;padding-right:22px}}

/* HERO (aprobado, no tocar) */
.hero{min-height:min(82vh,760px);display:flex;flex-direction:column;padding:0 40px;max-width:1200px;margin:0 auto;width:100%}
.hero-main{flex:1;display:flex;flex-direction:column;justify-content:center;padding:40px 0}
h1{font-weight:200;font-size:clamp(30px,4.6vw,60px);line-height:1.08;letter-spacing:-.03em;max-width:19ch}
h1 .heavy{font-weight:800;letter-spacing:-.02em}
.hero .lede{margin-top:40px;max-width:54ch;font-size:clamp(15px,1.8vw,18px);font-weight:300;line-height:1.65;color:var(--soft)}
.hero .lede b{color:var(--ink);font-weight:600}
@media(max-width:600px){.hero{min-height:auto}.hero-main{justify-content:flex-start;padding:34px 0 42px}}

/* SECTION SHELL */
section{padding:44px 40px;border-top:1px solid var(--line2);scroll-margin-top:70px}
.slab{display:flex;align-items:center;gap:12px;margin-bottom:18px;font-size:11.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.slab .snum{color:var(--accent)}
.slab::after{content:"";flex:1;max-width:60px;height:1px;background:var(--line)}
h2{font-weight:200;font-size:clamp(27px,3.8vw,46px);line-height:1.1;letter-spacing:-.028em;max-width:22ch}
h2 .heavy{font-weight:700;letter-spacing:-.02em}
.intro{margin-top:18px;max-width:60ch}
.intro p{font-size:clamp(15px,1.55vw,17.5px);color:var(--prose);font-weight:300;line-height:1.7}
.intro p+p{margin-top:14px}
.intro b{color:var(--ink);font-weight:600}
.intro a.ext{color:var(--ink);font-weight:500;border-bottom:1px solid var(--accent);padding-bottom:1px;white-space:nowrap;transition:color .2s}
.intro a.ext:hover{color:var(--accent)}
.cols{display:grid;grid-template-columns:5fr 6fr;gap:64px;align-items:start}
@media(max-width:920px){.cols{grid-template-columns:1fr;gap:44px}}

/* PUNCH + link a la tesis */
.punch{margin-top:24px;border-left:2px solid var(--accent);padding:6px 0 6px 24px;max-width:42ch;
  font-weight:200;font-size:clamp(19px,2.3vw,27px);line-height:1.3;letter-spacing:-.02em;color:var(--ink)}
.punch b{font-weight:700}
.more{margin-top:22px}
.more a{display:inline-flex;align-items:baseline;gap:10px;font-size:14.5px;font-weight:600;letter-spacing:.02em;color:var(--ink);
  border-bottom:1px solid var(--accent);padding-bottom:3px;transition:color .2s}
.more a:hover{color:var(--accent)}
.more .aro{color:var(--accent)}

/* FLOW (servicios) */
.leadline{margin-top:16px;max-width:60ch;color:var(--prose);font-weight:300;font-size:clamp(15px,1.55vw,17px);line-height:1.7}
.leadline b{color:var(--ink);font-weight:600}
.flow{margin-top:30px;display:flex;align-items:stretch;gap:0}
.flow .step{flex:1;border:1px solid var(--line);border-radius:14px;padding:28px 28px 26px;background:var(--panel)}
.flow .step.first{border-color:rgba(223,107,62,.4)}
.flow .kick{font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:10px}
.flow h3{font-weight:700;font-size:clamp(18px,2vw,23px);letter-spacing:-.016em;margin-bottom:10px}
.flow p{font-size:clamp(13.5px,1.4vw,15.5px);color:var(--prose);font-weight:300;line-height:1.6}
.fl-arr{flex:0 0 52px;display:flex;align-items:center;justify-content:center;color:var(--faint)}
.fl-arr svg{width:26px;height:14px;display:block}
@media(max-width:920px){
  .flow{flex-direction:column}
  .fl-arr{flex-basis:auto;padding:14px 0}
  .fl-arr svg{transform:rotate(90deg)}
}

/* QUIÉN */
.stats{margin-top:30px;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.stats .st{padding:26px 26px 26px 0}
.stats .st+.st{border-left:1px solid var(--line2);padding-left:26px}
.stats .v{font-weight:200;font-size:clamp(26px,3vw,40px);letter-spacing:-.03em;line-height:1;white-space:nowrap}
.stats .v b{font-weight:700}.stats .v .ac{color:var(--accent)}
.stats .l{margin-top:10px;font-size:12px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
@media(max-width:920px){.stats{grid-template-columns:1fr 1fr}
  .stats .st{padding:22px 0}
  .stats .st+.st{border-left:none;padding-left:0}
  .stats .st:nth-child(even){border-left:1px solid var(--line2);padding-left:22px}
  .stats .st:nth-child(n+3){border-top:1px solid var(--line2)}}
.creds{margin-top:28px;list-style:none;display:grid;grid-template-columns:repeat(6,1fr);gap:0}
.creds li{padding:0 26px 0 0}
.creds li+li{border-left:1px solid var(--line2);padding-left:26px}
.creds .org{display:block;font-weight:700;font-size:clamp(15px,1.6vw,18px);letter-spacing:-.01em}
.creds .role{display:block;margin-top:6px;font-size:12px;font-weight:400;color:var(--muted);line-height:1.5}
@media(max-width:920px){.creds{grid-template-columns:1fr 1fr;gap:22px}
  .creds li{padding:0}
  .creds li+li{border-left:none;padding-left:0}}
.sig{margin-top:28px;font-weight:200;font-size:clamp(18px,2.2vw,24px);letter-spacing:-.02em;color:var(--ink);line-height:1.3;max-width:32ch}
.sig b{font-weight:700}

/* MODELO */
.mgrid{margin-top:26px;display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:920px){.mgrid{grid-template-columns:1fr}}
.mcard{border:1px solid var(--line);border-radius:14px;padding:28px;background:var(--panel)}
.mcard.hl{border-color:rgba(223,107,62,.45);background:linear-gradient(180deg,rgba(223,107,62,.07),rgba(223,107,62,.015))}
.mcard .tag{font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.mcard.hl .tag{color:var(--accent)}
.mcard h3{font-weight:700;font-size:clamp(17px,1.9vw,21px);letter-spacing:-.015em;margin-bottom:9px}
.mcard p{font-size:clamp(13.5px,1.4vw,15.5px);color:var(--prose);font-weight:300;line-height:1.62}
.mcard a{color:var(--ink);border-bottom:1px solid var(--accent);padding-bottom:1px;transition:color .2s}
.mcard a:hover{color:var(--accent)}
.mclose{margin-top:22px;font-size:clamp(14px,1.45vw,16px);color:var(--soft);font-weight:300;line-height:1.66;max-width:62ch}
.mclose b{color:var(--ink);font-weight:600}

/* FAQ */
.faq{margin-top:22px;max-width:820px}
.faq details{border-top:1px solid var(--line2)}
.faq details:last-child{border-bottom:1px solid var(--line2)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:baseline;gap:20px;
  padding:20px 0;font-weight:600;font-size:clamp(15px,1.6vw,17.5px);letter-spacing:-.01em;color:var(--ink);transition:color .2s}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--accent)}
.faq summary .pm{flex:none;color:var(--accent);font-weight:300;font-size:20px;line-height:1;transform:translateY(2px)}
.faq details[open] summary .pm{transform:rotate(45deg) translateY(2px)}
.faq .ans{padding:0 0 22px;max-width:64ch;font-size:clamp(14px,1.45vw,15.5px);color:var(--prose);font-weight:300;line-height:1.68}
.faq .ans b{color:var(--ink);font-weight:600}

/* CONTACTO */
.ct-open{margin-top:4px;font-weight:200;font-size:clamp(22px,2.6vw,32px);letter-spacing:-.02em;max-width:20ch;line-height:1.18}
.ct-open .ac{color:var(--accent)}
form{display:grid;gap:20px}
.field{display:grid;gap:8px}
.field label{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.field input,.field select,.field textarea{background:var(--panel);border:1px solid var(--line);border-radius:10px;color:var(--ink);
  font-family:inherit;font-size:15px;font-weight:400;padding:13px 15px;transition:border-color .2s}
.field input:hover,.field select:hover,.field textarea:hover{border-color:rgba(245,245,243,.2)}
.field textarea{resize:vertical;min-height:96px}
.field select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' stroke='%236C6C74' stroke-width='1.6' fill='none' stroke-linecap='round'/></svg>");background-repeat:no-repeat;background-position:right 15px center}
.two{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media(max-width:560px){.two{grid-template-columns:1fr}}
.submit{justify-self:start;margin-top:4px;background:var(--ink);color:#000;font-family:inherit;font-size:14.5px;font-weight:600;
  border:none;border-radius:100px;padding:14px 30px;cursor:pointer;transition:.2s}
.submit:hover{background:#fff}
.ct-alt{margin-top:30px;font-size:14.5px;color:var(--soft);font-weight:300}
.ct-alt a{color:var(--ink);border-bottom:1px solid var(--accent);padding-bottom:1px}

/* FOOTER */
footer{padding:40px;border-top:1px solid var(--line2)}
.foot-in{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
footer .wm{height:18px}
footer p{font-size:11.5px;font-weight:500;letter-spacing:.06em;color:var(--faint)}
footer p a{border-bottom:1px solid var(--line);padding-bottom:1px}
footer p a:hover{color:var(--soft)}

/* REVEAL */
.rv{opacity:0;transform:translateY(16px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:no-preference){
  .hero h1,.hero .lede{opacity:0;transform:translateY(14px);animation:hin .8s cubic-bezier(.2,.7,.2,1) forwards}
  .hero .lede{animation-delay:.12s}
  @keyframes hin{to{opacity:1;transform:none}}
}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none}}

@media(max-width:600px){
  .nav-in,section,footer{padding-left:22px;padding-right:22px}
  .hero{padding-left:22px;padding-right:22px}
  section{padding-top:40px;padding-bottom:40px}
}

/* ── reglas de subpáginas (tesis / quién / modelo / faq) ── */
a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.links a.back .aro{color:var(--accent)}

/* PAGE HEADER */
.phead{padding:72px 40px 32px;max-width:1200px;margin:0 auto}
.kicker{font-size:11.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:22px}
.phead .lede{margin-top:28px;max-width:58ch;font-size:clamp(15px,1.7vw,18px);font-weight:300;line-height:1.68;color:var(--soft)}
@media(max-width:920px){.cols{grid-template-columns:1fr;gap:44px}}
.punch{margin-top:24px;border-left:2px solid var(--accent);padding:6px 0 6px 24px;max-width:42ch;
  font-weight:200;font-size:clamp(19px,2.4vw,28px);line-height:1.3;letter-spacing:-.02em;color:var(--ink)}
/* PROBLEMA · convergencia con párrafos completos */
.conv{margin-top:32px;display:grid;grid-template-columns:minmax(0,1.15fr) 90px minmax(0,.8fr);align-items:stretch}
.pr-list{list-style:none;display:grid}
.pr-list li{display:grid;grid-template-columns:44px 1fr;gap:16px;padding:24px 0;border-top:1px solid var(--line2)}
.pr-list li:first-child{border-top:none}
.pr-list .n{font-weight:300;font-size:14px;color:var(--accent);font-variant-numeric:tabular-nums;letter-spacing:.05em;padding-top:4px}
.pr-list h3{font-weight:700;font-size:clamp(16px,1.7vw,19px);letter-spacing:-.01em;color:var(--ink);line-height:1.3;margin-bottom:7px}
.pr-list p{font-size:clamp(13.5px,1.45vw,15.5px);color:var(--prose);font-weight:300;line-height:1.64;max-width:60ch}
.conv-svg{display:block;width:100%;height:100%}
.conv-root{align-self:center;border-left:2px solid var(--accent);background:linear-gradient(90deg,var(--accent-soft),transparent 78%);
  border-radius:0 12px 12px 0;padding:30px 30px 30px 28px}
.conv-root .rk{font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}
.conv-root h3{font-weight:700;font-size:clamp(19px,2.1vw,24px);letter-spacing:-.018em;line-height:1.22;margin-bottom:12px}
.conv-root p{font-size:clamp(14px,1.45vw,15.5px);color:var(--prose);font-weight:300;line-height:1.62}
@media(max-width:920px){
  .conv{grid-template-columns:1fr}
  .conv-mid{display:none}
  .conv-root{margin-top:36px}
}
/* SOLUCIÓN */
.sol-def{margin-top:28px;display:grid;gap:26px}
.sol-def h3{font-weight:700;font-size:clamp(17px,1.9vw,21px);letter-spacing:-.014em;margin-bottom:6px}
.sol-def h3 small{display:block;font-weight:600;font-size:11.5px;color:var(--accent);letter-spacing:.16em;text-transform:uppercase;margin-bottom:7px}
.sol-def p{font-size:clamp(14px,1.45vw,16px);color:var(--prose);font-weight:300;line-height:1.68;max-width:52ch}
.axes{width:100%;height:auto;display:block}
@media(max-width:920px){.axes{max-width:520px}}
/* SERVICIOS desarrollados */
.svc{margin-top:28px;display:grid;gap:0;max-width:96ch}
.svc .item{display:grid;grid-template-columns:.65fr 2fr;gap:32px;padding:30px 0;border-top:1px solid var(--line2)}
.svc .item:first-child{border-top:none}
.svc .lbl{font-weight:700;font-size:clamp(17px,1.9vw,21px);letter-spacing:-.01em}
.svc .lbl span{display:block;font-weight:600;font-size:11px;color:var(--accent);letter-spacing:.14em;text-transform:uppercase;margin-top:6px}
.svc .desc{font-size:clamp(14px,1.45vw,16px);color:var(--prose);font-weight:300;line-height:1.68}
@media(max-width:700px){.svc .item{grid-template-columns:1fr;gap:10px}}
/* QUIÉN · bio completa */
.bio{margin-top:26px;max-width:68ch}
.bio p{font-size:clamp(15px,1.55vw,17px);color:var(--prose);font-weight:300;line-height:1.75}
.bio p+p{margin-top:20px}
.bio strong{color:var(--ink);font-weight:600}
.bio .sig{margin-top:8px;font-weight:200;font-size:clamp(19px,2.4vw,26px);letter-spacing:-.02em;color:var(--ink);max-width:26ch;line-height:1.3}
/* MODELO desarrollado */
.nobel{margin-top:24px;border-left:2px solid var(--accent);background:linear-gradient(90deg,var(--accent-soft),transparent 78%);
  border-radius:0 12px 12px 0;padding:24px 26px;max-width:66ch}
.nobel p{font-size:clamp(14px,1.5vw,16px);color:var(--prose);font-weight:300;line-height:1.68}
.nobel b{color:var(--ink);font-weight:600}
.nobel a,.mtext a{color:var(--ink);border-bottom:1px solid var(--accent);padding-bottom:1px;transition:color .2s}
.nobel a:hover,.mtext a:hover{color:var(--accent)}
.mtext{margin-top:24px;max-width:66ch}
.mtext h3{font-weight:700;font-size:clamp(17px,1.9vw,21px);letter-spacing:-.014em;margin-bottom:8px}
.mtext h3 small{display:block;font-weight:600;font-size:11.5px;color:var(--accent);letter-spacing:.16em;text-transform:uppercase;margin-bottom:7px}
.mtext p{font-size:clamp(14px,1.5vw,16px);color:var(--prose);font-weight:300;line-height:1.7}
.mtext b{color:var(--ink);font-weight:600}
.mtext+.mtext{margin-top:34px}
/* EL NOMBRE */
.name-wrap{max-width:820px;margin:32px auto 0;text-align:center}
.roots{display:grid;grid-template-columns:1fr 1fr}
.roots .rt{padding:0 44px 34px}
.roots .rt+.rt{border-left:1px solid var(--line2)}
.roots .word{font-style:italic;font-weight:200;font-size:clamp(38px,5.5vw,64px);letter-spacing:-.02em;line-height:1}
.roots .src{margin-top:12px;font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.roots .mean{margin-top:12px;font-size:clamp(13.5px,1.4vw,15px);color:var(--prose);font-weight:300;line-height:1.55;max-width:26ch;margin-left:auto;margin-right:auto}
.roots .map{margin-top:12px;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.name-join{width:1px;height:44px;background:var(--line);margin:0 auto}
.name-wm{margin-top:34px;display:flex;justify-content:center}
.name-wm .wm{height:clamp(34px,5vw,52px)}
.name-close{margin-top:34px;font-size:clamp(14.5px,1.5vw,16.5px);color:var(--soft);font-weight:300;line-height:1.66;max-width:46ch;margin-left:auto;margin-right:auto}
.name-close b{color:var(--ink);font-weight:600}
@media(max-width:680px){.roots{grid-template-columns:1fr}
  .roots .rt+.rt{border-left:none;border-top:1px solid var(--line2);padding-top:32px}
  .roots .rt{padding-left:0;padding-right:0}}
/* CIERRE */
.endcta{padding:48px 40px 60px;border-top:1px solid var(--line2)}
.endcta .shell{text-align:left}
.endcta p{font-weight:200;font-size:clamp(22px,2.8vw,34px);letter-spacing:-.022em;line-height:1.22;max-width:26ch}
.endcta p b{font-weight:700}
.endcta .more{margin-top:30px}
.endcta .more a{display:inline-flex;align-items:baseline;gap:10px;font-size:14.5px;font-weight:600;color:var(--ink);
  border-bottom:1px solid var(--accent);padding-bottom:3px;transition:color .2s}
.endcta .more a:hover{color:var(--accent)}
.endcta .aro{color:var(--accent)}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none}}
@media(max-width:600px){
  .nav-in,section,footer,.phead,.endcta{padding-left:22px;padding-right:22px}
  section{padding-top:40px;padding-bottom:40px}
  .phead{padding-top:52px;padding-bottom:28px}
}

.ct-ok{font-size:16px;line-height:1.6;color:var(--ink);font-weight:300}

.creds.creds-2{grid-template-columns:repeat(2,1fr)}
