/* ============================================================
   Siemon Digital — Landing
   Sistema de marca: obsidiana + lavanda (Aether), proporción 60/30/10.
   Tipografía: Montserrat (fallback de Mont) + JetBrains Mono.
   ============================================================ */

:root{
  --obsidian:#0A0B0D; --carbon:#15161A; --graphite:#23252B;
  --ash:#8B8D98; --mist:#C9CAD2; --white:#FFFFFF;
  --cream:#E9E5DD; --charcoal:#38383A;
  --aether-100:#E2DCF5; --aether-200:#CBC0EC; --aether:#B1A3E1;
  --aether-500:#8474BE; --aether-700:#534673;
  --line:rgba(255,255,255,0.10); --line-2:rgba(255,255,255,0.18);
  --mono:"JetBrains Mono",ui-monospace,monospace;
  --sans:"Montserrat",system-ui,sans-serif;
  --maxw:1180px;
  --r10:10px; --r14:14px; --r22:22px; --rpill:999px;
  --mx:75%; --my:0%;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--sans);background:var(--obsidian);color:var(--mist);-webkit-font-smoothing:antialiased;line-height:1.6;overflow-x:hidden;}

/* mouse-reactive Aether glow */
.glow{position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(620px 620px at var(--mx) var(--my), rgba(177,163,225,0.14), transparent 62%),
    radial-gradient(1000px 700px at 88% -8%, rgba(177,163,225,0.08), transparent 60%),
    radial-gradient(820px 560px at -8% 26%, rgba(177,163,225,0.045), transparent 55%);
  transition:background .25s ease-out;}
.grain{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.5;mix-blend-mode:soft-light;
  background-image:repeating-linear-gradient(118deg, rgba(255,255,255,.018) 0 1px, transparent 1px 13px);}
.page{position:relative;z-index:1;}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}
.logo-svg{width:100%;height:100%;display:block;fill:currentColor;color:var(--aether);}
.logo-svg path{fill:currentColor;}
.ml{font-family:var(--mono);font-size:11.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--aether);display:inline-block;}
.ml::before{content:"// ";color:var(--aether-500);}

a{color:inherit;text-decoration:none;}

/* buttons */
.btn{font-family:var(--sans);font-weight:600;font-size:14.5px;letter-spacing:.01em;border-radius:var(--rpill);padding:14px 26px;border:1px solid transparent;cursor:pointer;display:inline-flex;align-items:center;gap:9px;white-space:nowrap;transition:all .22s cubic-bezier(.2,.7,.2,1);}
.btn:focus-visible{outline:2px solid var(--aether);outline-offset:3px;}
.btn-primary{background:var(--aether);color:var(--obsidian);}
.btn-primary:hover{background:var(--aether-200);transform:translateY(-2px);box-shadow:0 14px 34px -14px rgba(177,163,225,.65);}
.btn-primary:active{transform:translateY(0);}
.btn-secondary{background:transparent;color:var(--cream);border-color:var(--line-2);}
.btn-secondary:hover{border-color:var(--aether);color:var(--white);background:rgba(177,163,225,.06);}
.btn .arrow{transition:transform .22s;}
.btn:hover .arrow{transform:translateX(3px);}
.btn[disabled]{opacity:.55;cursor:default;transform:none;box-shadow:none;}

/* reveal */
html.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);}
html.js .reveal.in{opacity:1;transform:none;}
html.reveal-done .reveal{opacity:1!important;transform:none!important;transition:none!important;}
@media(prefers-reduced-motion:reduce){html.js .reveal{opacity:1!important;transform:none!important;transition:none;}}

/* ---------- nav ---------- */
.nav{position:sticky;top:0;z-index:60;background:rgba(10,11,13,.66);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid transparent;transition:border-color .3s,background .3s;}
.nav.scrolled{border-bottom-color:var(--line);background:rgba(10,11,13,.82);}
.nav .inner{max-width:var(--maxw);margin:0 auto;padding:16px 32px;display:flex;align-items:center;justify-content:space-between;gap:24px;}
.nav .lockup{display:flex;align-items:center;gap:12px;}
.nav .lockup .ic{width:28px;color:var(--aether);}
.nav .wm{line-height:.9;}
.nav .wm .s{display:block;font-weight:700;font-size:16px;letter-spacing:0;color:var(--cream);}
.nav .wm .d{display:block;font-weight:400;font-size:8.5px;letter-spacing:.454em;color:var(--cream);margin-top:2px;}
.nav .links{display:flex;gap:26px;}
.nav .links a{font-size:13.5px;color:var(--mist);transition:color .2s;white-space:nowrap;}
.nav .links a:hover{color:var(--white);}
.nav .navcta{font-size:13.5px;}
.nav-right{display:flex;align-items:center;gap:16px;}
.lang{display:inline-flex;align-items:center;border:1px solid var(--line-2);border-radius:var(--rpill);padding:2px;gap:2px;}
.lang button{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--ash);background:none;border:none;border-radius:999px;padding:5px 10px;cursor:pointer;transition:color .18s,background .18s;}
.lang button:hover{color:var(--mist);}
.lang button.on{background:var(--aether);color:var(--obsidian);font-weight:600;}
.lang button:focus-visible{outline:2px solid var(--aether);outline-offset:2px;}

/* botón hamburguesa (solo responsive) */
.nav-toggle{display:none;width:42px;height:42px;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:0;background:transparent;border:1px solid var(--line-2);border-radius:10px;cursor:pointer;}
.nav-toggle span{display:block;width:18px;height:2px;background:var(--cream);border-radius:2px;transition:transform .26s cubic-bezier(.2,.7,.2,1),opacity .2s;}
.nav-toggle:hover{border-color:var(--aether);}
.nav-toggle:focus-visible{outline:2px solid var(--aether);outline-offset:2px;}
.nav.open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav.open .nav-toggle span:nth-child(2){opacity:0;}
.nav.open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.links-cta{display:none;}

@media(max-width:1024px){
  .nav-toggle{display:inline-flex;}
  .nav .links{
    position:absolute;top:100%;left:0;right:0;
    display:flex;flex-direction:column;gap:0;
    background:rgba(10,11,13,.97);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
    border-bottom:1px solid var(--line);
    max-height:0;overflow:hidden;opacity:0;visibility:hidden;
    transition:max-height .32s cubic-bezier(.2,.7,.2,1),opacity .25s,visibility .25s;
  }
  .nav.open .links{max-height:86vh;opacity:1;visibility:visible;}
  .nav .links a{font-size:16px;color:var(--mist);padding:16px 32px;border-top:1px solid var(--line);transition:color .2s,background .2s;}
  .nav .links a:first-child{border-top:none;}
  .nav .links a:hover{color:var(--white);background:rgba(255,255,255,.03);}
  .links-cta{display:block;color:var(--aether)!important;font-weight:600;}
}
@media(max-width:560px){
  .nav .navcta .full{display:none;}
  .nav .links a{padding:15px 22px;}
}
@media(max-width:430px){.nav .navcta{display:none;}}

/* ---------- hero · vídeo scroll-driven (efecto Apple) ---------- */
.hero-video{height:400vh;position:relative;background:var(--obsidian);}
.hero-video-sticky{position:sticky;top:0;height:100vh;width:100%;overflow:hidden;}
.hero-video-sticky video{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;background:var(--obsidian);}
/* velo: oscurece a la izquierda (donde va el texto) y deja ver el vídeo a la derecha */
.hero-video-veil{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(90deg, rgba(10,11,13,.94) 0%, rgba(10,11,13,.80) 36%, rgba(10,11,13,.45) 68%, rgba(10,11,13,.32) 100%),
    linear-gradient(0deg, rgba(10,11,13,.88) 0%, transparent 26%),
    radial-gradient(120% 90% at 50% 0%, rgba(10,11,13,.55), transparent 60%);}
.hero-content{position:absolute;inset:0;z-index:2;display:flex;align-items:center;}
.hero-content .wrap{width:100%;}
.hero-content .ml{margin-bottom:30px;white-space:normal;max-width:42ch;}
.hero-content h1{font-weight:300;font-size:clamp(46px,8vw,92px);line-height:1.0;letter-spacing:-.028em;color:var(--white);max-width:16ch;}
.hero-content h1 b{font-weight:700;color:var(--aether);}
.hero-content .sub{margin-top:30px;font-size:clamp(17px,2.2vw,21px);font-weight:300;color:var(--mist);max-width:58ch;line-height:1.55;}
.hero-content .sub b{color:var(--white);font-weight:600;}
.hero-content .cta-row{margin-top:42px;display:flex;flex-wrap:wrap;gap:16px;align-items:center;}
.hero-content .reassure{margin-top:24px;font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;color:var(--ash);}
.hero-content .reassure b{color:var(--aether);font-weight:500;}

/* indicador de scroll */
.scroll-hint{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:3;display:flex;flex-direction:column;align-items:center;gap:9px;
  font-family:var(--mono);font-size:9.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--ash);}
.scroll-hint .sh-line{width:1px;height:38px;background:linear-gradient(var(--aether),transparent);transform-origin:top;animation:sh-pulse 1.9s ease-in-out infinite;}
@keyframes sh-pulse{0%,100%{opacity:.3;transform:scaleY(.55);}50%{opacity:1;transform:scaleY(1);}}

/* barra de progreso del vídeo */
.scroll-progress-bar{position:absolute;left:0;bottom:0;width:100%;height:3px;z-index:4;background:rgba(255,255,255,.10);}
.scroll-progress-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--aether-500),var(--aether));transition:width .05s linear;}

@media(max-width:768px){
  .hero-video{height:100vh;}
  .hero-video-sticky{position:relative;}
  .scroll-hint,.scroll-progress-bar{display:none;}
}
@media(prefers-reduced-motion:reduce){
  .hero-video{height:100vh;}
  .hero-video-sticky{position:relative;}
  .scroll-hint .sh-line{animation:none;}
}

/* section scaffolding */
section.block{padding:96px 0;position:relative;}
.sec-top{display:flex;align-items:baseline;gap:18px;margin-bottom:18px;flex-wrap:wrap;}
.sec-top h2{font-weight:600;font-size:clamp(30px,4.6vw,46px);color:var(--white);letter-spacing:-.02em;line-height:1.05;max-width:18ch;}
.sec-lead{font-size:clamp(17px,2vw,20px);font-weight:300;color:var(--mist);max-width:62ch;}
.sec-lead b{color:var(--white);font-weight:600;}
.sec-lead .acc{color:var(--aether);font-weight:600;}
#servicios h2 b{color:var(--aether);font-weight:700;}

/* 00 · Diseñando ideas */
.need-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:52px;}
.need{border:1px solid var(--line);border-radius:var(--r22);background:rgba(21,22,26,.5);padding:32px 28px;transition:transform .3s,border-color .3s;}
.need:hover{transform:translateY(-5px);border-color:var(--aether-500);}
.need h3{font-weight:600;font-size:19px;color:var(--white);letter-spacing:-.01em;line-height:1.3;}
.need p{margin-top:14px;font-size:14.5px;color:var(--mist);line-height:1.62;font-weight:300;}
.ds-cta{margin-top:42px;}
@media(max-width:860px){.need-grid{grid-template-columns:1fr;}}
.divider{height:1px;background:var(--line);}

/* qué hacemos */
.vp-statement{font-weight:300;font-size:clamp(26px,3.6vw,42px);line-height:1.18;letter-spacing:-.018em;color:var(--white);max-width:20ch;margin:8px 0 0;}
.vp-statement b{font-weight:700;}
.vp-statement .acc{color:var(--aether);font-weight:700;}
.caps{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r22);overflow:hidden;margin-top:56px;}
.cap{background:rgba(21,22,26,.7);padding:34px 28px;transition:background .3s;}
.cap:hover{background:rgba(35,37,43,.7);}
.cap .cn{font-family:var(--mono);font-size:12px;color:var(--aether);letter-spacing:.14em;}
.cap h4{color:var(--white);font-weight:600;font-size:18px;margin:18px 0 9px;letter-spacing:-.01em;}
.cap p{font-size:13.5px;color:var(--ash);line-height:1.6;}

/* para quién */
.who-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:52px;}
.who-card{border:1px solid var(--line);border-radius:var(--r22);padding:42px 38px;background:linear-gradient(180deg,rgba(35,37,43,.45),rgba(21,22,26,.25));position:relative;overflow:hidden;transition:transform .3s,border-color .3s;}
.who-card:hover{transform:translateY(-5px);border-color:var(--aether-500);}
.who-card::before{content:"";position:absolute;inset:0;background:radial-gradient(420px 300px at 100% 0%,rgba(177,163,225,.10),transparent 60%);opacity:0;transition:opacity .3s;}
.who-card:hover::before{opacity:1;}
.who-card .tag{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--aether);}
.who-card h3{font-weight:600;font-size:25px;color:var(--white);margin:18px 0 14px;letter-spacing:-.012em;}
.who-card p{font-size:15px;color:var(--mist);line-height:1.6;font-weight:300;}
.who-card ul{list-style:none;margin-top:22px;display:flex;flex-direction:column;gap:11px;}
.who-card li{font-size:13.5px;color:var(--ash);display:flex;gap:11px;align-items:flex-start;}
.who-card li .dot{width:6px;height:6px;border-radius:50%;background:var(--aether);margin-top:7px;flex:none;}

/* metodología */
.method-intro{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;}
.steps{margin-top:60px;display:flex;flex-direction:column;}
.step{display:grid;grid-template-columns:120px 1fr auto;gap:32px;padding:34px 0;border-top:1px solid var(--line);align-items:start;transition:padding-left .35s;}
.step:last-child{border-bottom:1px solid var(--line);}
.step:hover{padding-left:14px;}
.step .sn{font-weight:200;font-size:64px;line-height:.85;color:var(--aether);letter-spacing:-.03em;font-variant-numeric:tabular-nums;}
.step .body h4{font-weight:600;font-size:23px;color:var(--white);letter-spacing:-.01em;}
.step .body p{font-size:15px;color:var(--ash);margin-top:10px;line-height:1.62;max-width:60ch;font-weight:300;}
.step .mtag{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--aether-500);white-space:nowrap;padding-top:10px;}
@media(max-width:760px){.step{grid-template-columns:64px 1fr;}.step .mtag{grid-column:2;padding-top:4px;}}

/* servicios */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:54px;}
.svc{border:1px solid var(--line);border-radius:var(--r22);padding:32px;background:rgba(21,22,26,.5);transition:transform .3s,border-color .3s,box-shadow .3s;position:relative;}
.svc:hover{transform:translateY(-6px);border-color:var(--aether-500);box-shadow:0 26px 56px -30px rgba(177,163,225,.45);}
.svc .ico{width:46px;height:46px;border-radius:var(--r14);background:rgba(177,163,225,.1);border:1px solid var(--aether-700);display:flex;align-items:center;justify-content:center;color:var(--aether);}
.svc .ico svg{width:22px;height:22px;}
.svc h4{font-weight:600;font-size:19px;color:var(--white);margin:22px 0 10px;letter-spacing:-.01em;}
.svc p{font-size:14px;color:var(--ash);line-height:1.62;font-weight:300;}

/* resultados */
.results{border:1px solid var(--line);border-radius:var(--r22);overflow:hidden;margin-top:54px;background:rgba(21,22,26,.5);position:relative;}
.stat-row{display:grid;grid-template-columns:repeat(4,1fr);}
.stat{padding:42px 34px;border-right:1px solid var(--line);}
.stat:last-child{border-right:none;}
.stat .num{font-weight:200;font-size:clamp(40px,5vw,60px);color:var(--white);letter-spacing:-.03em;line-height:1;}
.stat .num b{color:var(--aether);font-weight:300;}
.stat .lbl{margin-top:14px;font-size:13px;color:var(--ash);line-height:1.5;}
.stat .ed{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--aether-500);margin-top:14px;}
.res-statement{margin-top:46px;max-width:66ch;}
.res-statement p{margin-top:2px;font-size:clamp(17px,2.1vw,22px);font-weight:300;line-height:1.5;letter-spacing:-.006em;color:var(--mist);}
.res-statement p b{color:var(--white);font-weight:600;}
.quote-band{border-top:1px solid var(--line);padding:46px 40px;display:flex;gap:26px;align-items:center;flex-wrap:wrap;}
.quote-band blockquote{font-weight:300;font-size:clamp(20px,2.4vw,27px);line-height:1.4;color:var(--white);letter-spacing:-.012em;flex:1;min-width:280px;}
.quote-band blockquote .q{color:var(--aether);font-weight:600;}
.quote-band .src{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--ash);text-transform:uppercase;}
@media(max-width:860px){.stat-row{grid-template-columns:1fr 1fr;}.stat:nth-child(2){border-right:none;}.stat:nth-child(1),.stat:nth-child(2){border-bottom:1px solid var(--line);}}

/* CTA / contacto final */
.cta-final{text-align:center;padding:120px 0;position:relative;}
.cta-final .ml{margin-bottom:26px;}
.cta-final h2{font-weight:300;font-size:clamp(38px,6.4vw,76px);line-height:1.0;letter-spacing:-.028em;color:var(--white);max-width:18ch;margin:0 auto;}
.cta-final h2 b{font-weight:700;color:var(--aether);}
.cta-final .sub{margin:28px auto 0;font-size:clamp(16px,2vw,19px);font-weight:300;color:var(--mist);max-width:52ch;}

/* contact grid (formulario) */
.contact-grid{margin-top:56px;display:grid;grid-template-columns:0.8fr 1.2fr;gap:40px;text-align:left;position:relative;z-index:1;}
.contact-aside{display:flex;flex-direction:column;gap:30px;padding-top:6px;}
.contact-aside .ca-k{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--aether);display:block;margin-bottom:9px;}
.contact-aside .ca-k::before{content:"";} /* el "//" ya viene en el texto */
.contact-aside p{font-size:14.5px;color:var(--mist);line-height:1.6;font-weight:300;}
.contact-aside a{color:var(--cream);border-bottom:1px solid var(--line-2);transition:color .2s,border-color .2s;}
.contact-aside a:hover{color:var(--aether);border-color:var(--aether);}

.contact-form{border:1px solid var(--line);border-radius:var(--r22);background:rgba(21,22,26,.5);padding:34px;display:flex;flex-direction:column;gap:18px;}
.cf-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.cf-field{display:flex;flex-direction:column;gap:8px;}
.cf-field>span{font-size:12.5px;color:var(--mist);font-weight:500;letter-spacing:.01em;}
.cf-field>span em{color:var(--ash);font-style:normal;font-weight:400;}
.cf-field input,.cf-field textarea{font-family:var(--sans);font-size:15px;color:var(--white);background:rgba(10,11,13,.55);border:1px solid var(--line-2);border-radius:var(--r10);padding:13px 15px;transition:border-color .2s,box-shadow .2s,background .2s;resize:vertical;width:100%;}
.cf-field input::placeholder,.cf-field textarea::placeholder{color:#5d5f6a;}
.cf-field input:focus,.cf-field textarea:focus{outline:none;border-color:var(--aether);background:rgba(10,11,13,.8);box-shadow:0 0 0 3px rgba(177,163,225,.14);}
.cf-field input:user-invalid,.cf-field textarea:user-invalid{border-color:#c98b8b;}
.cf-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none;}
.cf-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:4px;}
.cf-status{font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--ash);min-height:1em;}
.cf-status.ok{color:#6FD08C;}
.cf-status.err{color:#d99a9a;}
@media(max-width:860px){.contact-grid{grid-template-columns:1fr;gap:30px;}}
@media(max-width:520px){.cf-row{grid-template-columns:1fr;}}

/* ===== Expande tu ser ===== */
.exp-k{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--aether);margin:0 0 18px;}
.exp-profiles{margin-top:54px;}
.exp-prof-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:6px;}
.exp-prof{border:1px solid var(--line);border-radius:var(--r22);background:rgba(21,22,26,.5);padding:28px 26px;display:flex;flex-direction:column;gap:14px;transition:transform .3s,border-color .3s;}
.exp-prof:hover{transform:translateY(-4px);border-color:var(--aether-500);}
.exp-prof .exp-n{font-family:var(--mono);font-weight:200;font-size:34px;line-height:1;color:var(--aether);letter-spacing:-.02em;}
.exp-prof p{font-size:14.5px;color:var(--mist);line-height:1.6;font-weight:300;}

.exp-build{margin-top:58px;}
.exp-list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:14px 36px;margin-top:6px;}
.exp-list li{display:flex;gap:12px;align-items:flex-start;font-size:15px;color:var(--mist);line-height:1.6;font-weight:300;}
.exp-list li .dot{width:6px;height:6px;border-radius:50%;background:var(--aether);margin-top:9px;flex:none;}
.exp-list li b{color:var(--white);font-weight:600;}
.exp-tag{margin-top:26px;font-size:clamp(18px,2.2vw,24px);font-weight:300;color:var(--white);letter-spacing:-.012em;}
.exp-tag::before{content:"// ";color:var(--aether-500);font-family:var(--mono);font-size:.7em;}

.exp-how{margin-top:58px;}
.exp-steps{display:flex;flex-wrap:wrap;align-items:center;gap:12px 0;margin-top:6px;}
.exp-step{font-family:var(--mono);font-size:12.5px;letter-spacing:.04em;color:var(--mist);border:1px solid var(--line-2);border-radius:var(--rpill);padding:9px 16px;background:rgba(21,22,26,.5);}
.exp-step + .exp-step{margin-left:34px;position:relative;}
.exp-step + .exp-step::before{content:"→";position:absolute;left:-25px;top:50%;transform:translateY(-50%);color:var(--aether-500);}

.exp-example{margin-top:60px;border:1px solid var(--line);border-radius:var(--r22);background:rgba(21,22,26,.5);padding:30px;}
.exp-ex-head{display:flex;flex-direction:column;gap:8px;margin-bottom:24px;}
.exp-ex-label{font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--aether-500);}
.exp-ex-name{font-weight:700;font-size:22px;color:var(--white);letter-spacing:-.01em;}
.exp-ex-line{font-size:14.5px;color:var(--ash);line-height:1.6;font-weight:300;max-width:72ch;}
.exp-halves{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.exp-half{display:flex;flex-direction:column;gap:12px;}
.ejemplo-link{display:block;border:1px solid var(--line-2);border-radius:var(--r14);overflow:hidden;position:relative;background:#0c0d11;transition:border-color .3s,transform .3s,box-shadow .3s;}
.ejemplo-link img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;}
.ejemplo-link:hover{border-color:var(--aether);transform:translateY(-4px);box-shadow:0 24px 50px -28px rgba(177,163,225,.5);}
.ejemplo-link:focus-visible{outline:2px solid var(--aether);outline-offset:3px;}
.exp-kick{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--aether);}
.exp-mini{font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--aether);transition:color .2s;}
.exp-half:hover .exp-mini{color:var(--white);}

.exp-cta{margin-top:46px;}

@media(max-width:860px){
  .exp-prof-grid{grid-template-columns:1fr;}
  .exp-list{grid-template-columns:1fr;}
}
@media(max-width:680px){
  .exp-halves{grid-template-columns:1fr;}
}
@media(max-width:560px){
  .exp-step + .exp-step{margin-left:0;}
  .exp-step + .exp-step::before{display:none;}
}

/* footer */
footer{border-top:1px solid var(--line);padding:64px 0 48px;}
footer .top{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;}
footer .lockup{display:flex;align-items:center;gap:13px;}
footer .lockup .ic{width:30px;color:var(--aether);}
footer .wm{line-height:.9;}
footer .wm .s{display:block;font-weight:700;font-size:17px;color:var(--cream);}
footer .wm .d{display:block;font-weight:400;font-size:9px;letter-spacing:.454em;color:var(--cream);margin-top:2px;}
footer .fcols{display:flex;gap:64px;flex-wrap:wrap;}
footer .fcol h5{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ash);margin-bottom:16px;}
footer .fcol a,footer .fcol p{display:block;font-size:13.5px;color:var(--mist);margin-bottom:10px;transition:color .2s;}
footer .fcol a:hover{color:var(--aether);}
footer .legal{margin-top:54px;padding-top:26px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;}
footer .legal p{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;color:#6b6d78;}
footer .legal a{color:#6b6d78;transition:color .2s;}
footer .legal a:hover{color:var(--aether);}

@media(max-width:920px){.caps{grid-template-columns:1fr 1fr;}.svc-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:680px){
  .wrap{padding:0 22px;}
  .caps,.who-grid,.svc-grid,.method-intro{grid-template-columns:1fr;}
  section.block{padding:72px 0;}
}

/* ===== patterns, shapes & detail ===== */
.dots{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.6;
  background-image:radial-gradient(rgba(177,163,225,.12) 1.1px, transparent 1.5px);
  background-size:44px 44px;background-position:center;
  -webkit-mask-image:radial-gradient(125% 118% at 82% -6%, #000 0%, rgba(0,0,0,.4) 44%, transparent 72%);
  mask-image:radial-gradient(125% 118% at 82% -6%, #000 0%, rgba(0,0,0,.4) 44%, transparent 72%);}

/* accent underline that draws under // labels */
.ml{position:relative;white-space:nowrap;}
.ml::after{content:"";position:absolute;left:0;bottom:-9px;height:2px;width:100%;transform:scaleX(0);transform-origin:left;
  background:linear-gradient(90deg,var(--aether),rgba(177,163,225,0));transition:transform .75s cubic-bezier(.2,.7,.2,1) .12s;}
.reveal.in .ml::after,.reveal.in.ml::after{transform:scaleX(1);}
html.reveal-done .ml::after{transform:scaleX(1);transition:none;}

/* big ghost section index */
.block .wrap{position:relative;}
.block .wrap>*:not(.sec-idx){position:relative;z-index:1;}
.sec-idx{position:absolute;top:-16px;right:0;z-index:0;pointer-events:none;user-select:none;
  font-family:var(--mono);font-weight:200;font-size:clamp(84px,12vw,168px);line-height:.8;letter-spacing:-.05em;
  color:transparent;-webkit-text-stroke:1px rgba(177,163,225,.13);}

/* section top rule with diamond tick */
.sec-rule{position:absolute;top:0;left:0;right:0;height:1px;z-index:0;pointer-events:none;
  background:linear-gradient(90deg,transparent, var(--line) 8%, var(--line) 92%, transparent);}
.sec-rule::before{content:"";position:absolute;left:50%;top:-3.5px;width:8px;height:8px;transform:translateX(-50%) rotate(45deg);
  background:var(--obsidian);border:1px solid var(--aether-500);}

/* technical corner brackets on cards */
.tick-c{position:absolute;width:13px;height:13px;border:0 solid var(--aether-700);pointer-events:none;opacity:.65;transition:opacity .3s,border-color .3s;z-index:2;}
.tick-c.tl{top:14px;left:14px;border-width:1px 0 0 1px;}
.tick-c.br{bottom:14px;right:14px;border-width:0 1px 1px 0;}
.svc:hover .tick-c,.who-card:hover .tick-c{opacity:1;border-color:var(--aether);}

/* capability strip: accent line draws on hover */
.cap{position:relative;}
.cap::after{content:"";position:absolute;left:0;top:0;height:2px;width:100%;transform:scaleX(0);transform-origin:left;
  background:var(--aether);transition:transform .4s cubic-bezier(.2,.7,.2,1);}
.cap:hover::after{transform:scaleX(1);}

/* ghost isotipo watermark + concentric rings */
.cta-final .wrap{position:relative;z-index:1;}
.hero-deco,.cta-deco{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.ring{position:absolute;border:1px solid rgba(177,163,225,.16);border-radius:50%;}
.ring.r2{border-color:rgba(177,163,225,.11);}
.ring.r3{border-color:rgba(177,163,225,.08);}
.iso-wm{position:absolute;color:var(--aether);opacity:.05;}
.iso-wm path{fill:currentColor;}
@media (prefers-reduced-motion:no-preference){
  .ring{animation:deco-pop 1.1s cubic-bezier(.2,.7,.2,1) both;}
  .ring.r2{animation-delay:.09s;} .ring.r3{animation-delay:.18s;}
  .iso-wm{animation:wm-pop 1.2s cubic-bezier(.2,.7,.2,1) both;}
}
@keyframes deco-pop{from{opacity:0;transform:scale(.9);}to{opacity:1;transform:none;}}
@keyframes wm-pop{from{opacity:0;transform:scale(.93);}to{opacity:.05;transform:none;}}

/* ===== diagonal stripe pattern — brand "juego visual" (wide-spaced) ===== */
.stripe{position:absolute;pointer-events:none;z-index:0;
  background-image:repeating-linear-gradient(135deg, rgba(177,163,225,.09) 0 2px, transparent 2px 24px);}
/* hero: striped wedge bottom-left, balances the rings top-right */
.hero-stripes{left:-50px;bottom:-90px;width:44%;height:86%;
  -webkit-mask-image:radial-gradient(125% 120% at 0% 100%, #000 0%, transparent 64%);
          mask-image:radial-gradient(125% 120% at 0% 100%, #000 0%, transparent 64%);}
/* CTA: full-bleed striped backdrop, hollow center for legibility */
.cta-stripes{inset:0;
  -webkit-mask-image:radial-gradient(82% 120% at 50% 50%, transparent 32%, #000 92%);
          mask-image:radial-gradient(82% 120% at 50% 50%, transparent 32%, #000 92%);}
/* results: striped corner wedge */
.res-stripes{position:absolute;right:0;top:0;width:48%;height:100%;pointer-events:none;z-index:0;
  background-image:repeating-linear-gradient(135deg, rgba(177,163,225,.075) 0 2px, transparent 2px 24px);
  -webkit-mask-image:linear-gradient(105deg, transparent 4%, #000 78%);
          mask-image:linear-gradient(105deg, transparent 4%, #000 78%);}
.results .stat-row,.results .quote-band{position:relative;z-index:1;}
