/* RocAIon brand tokens — Libro de Marca v1.0 */
:root{
  --black:#05070B; --blue:#1E9BFF; --indigo:#635BFF; --violet:#8B5CF6; --pink:#F36FF9; --white:#FFFFFF; --gray:#C8CDD6;
  --grad:linear-gradient(100deg,var(--blue) 0%,var(--indigo) 40%,var(--violet) 68%,var(--pink) 100%);
  --bg:var(--black); --fg:var(--white); --muted:rgba(200,205,214,.72); --line:rgba(200,205,214,.14);
  --glass:rgba(255,255,255,.05); --glass-b:rgba(255,255,255,.1);
  --display:"Space Grotesk","Manrope",system-ui,sans-serif; --sans:"Inter",system-ui,sans-serif;
  --gutter:clamp(16px,6vw,110px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg)}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
::selection{background:var(--indigo);color:#fff}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
/* emphasis = brand gradient ("AI" treatment) */
em{font-style:normal;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none}
.line em,.line-mask em{padding-right:.02em}
.wrap{padding:0 var(--gutter);max-width:1600px;margin:0 auto;width:100%}
.display{font-family:var(--display);font-weight:700;letter-spacing:-.04em;line-height:1}
.h2{font-size:clamp(38px,5vw,80px)}
.muted{color:var(--muted)}
.eyebrow{font-family:var(--sans);font-weight:500;font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--gray);margin-bottom:22px;display:flex;align-items:center;gap:14px}
.eyebrow::before{content:"";width:28px;height:1px;background:var(--grad);flex:none}

/* fixed layers */
#gl{position:fixed;inset:0;width:100%;height:100%;z-index:0;display:block}
.grain{position:fixed;inset:-50%;z-index:3;pointer-events:none;opacity:.06;background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");animation:grain 1s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-4%,3%)}40%{transform:translate(3%,-5%)}60%{transform:translate(-6%,2%)}80%{transform:translate(5%,5%)}100%{transform:translate(0,0)}}
.vignette{position:fixed;inset:0;z-index:1;pointer-events:none;background:radial-gradient(120% 90% at 50% 45%,transparent 40%,rgba(5,7,11,.88) 100%)}
main,footer{position:relative;z-index:2}

/* loader */
.loader{position:fixed;inset:0;z-index:100;background:var(--black);display:grid;place-items:center;align-content:center;gap:18px}
.loader__brand{width:min(260px,60vw)}
.loader__brand img{width:100%;display:block}
.loader__num{font-family:var(--display);font-weight:700;letter-spacing:-.05em;font-size:clamp(90px,15vw,190px);line-height:.9;font-variant-numeric:tabular-nums;display:flex}
.loader__num sup{font-family:var(--sans);font-size:12px;color:var(--muted);margin-top:14px;letter-spacing:0}
.loader__bar{width:min(280px,60vw);height:2px;background:var(--line);border-radius:2px;overflow:hidden}
.loader__bar i{display:block;height:100%;width:100%;background:var(--grad);transform-origin:left;transform:scaleX(0)}

/* nav */
.nav::before{content:"";position:absolute;inset:0 0 -30px;background:linear-gradient(rgba(5,7,11,.8),transparent);z-index:-1;pointer-events:none}
.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:18px var(--gutter)}
.nav__logo img{height:24px;width:auto;display:block}
.nav__pill{position:absolute;left:50%;transform:translateX(-50%);display:flex;gap:4px;padding:5px;border-radius:999px;background:var(--glass);border:1px solid var(--glass-b);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.nav__pill a{font-family:var(--display);font-weight:500;font-size:13px;padding:7px 14px;border-radius:999px;transition:background .3s,color .3s}
.nav__pill a:hover{background:rgba(99,91,255,.18)}
.nav__right{display:flex;align-items:center;gap:10px}
.lang{display:flex;padding:3px;border-radius:999px;background:var(--glass);border:1px solid var(--glass-b);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.lang button{font-family:var(--display);font-weight:500;font-size:11px;letter-spacing:.08em;padding:6px 10px;border-radius:999px;color:var(--muted);transition:color .3s}
.lang button.is-active{background:var(--grad);color:#fff}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;height:46px;padding:0 8px 0 20px;border-radius:999px;font-size:13px;font-weight:500;white-space:nowrap;will-change:transform;transition:box-shadow .4s}
.btn--sm{height:38px;font-size:12px;padding-left:16px}
.btn--primary{background:var(--grad);color:#fff;box-shadow:0 0 0 rgba(99,91,255,0)}
.btn--primary:hover{box-shadow:0 10px 40px -8px rgba(99,91,255,.7)}
.btn--glass{background:rgba(255,255,255,.07);border:1px solid var(--glass-b);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding-right:20px}
.btn--glass:hover{border-color:rgba(30,155,255,.5)}
.arrow{width:22px;height:22px;border-radius:50%;background:rgba(255,255,255,.95);display:grid;place-items:center;margin-right:4px;transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.arrow::after{content:"";width:5px;height:5px;border:solid var(--indigo);border-width:1.5px 1.5px 0 0;transform:translateX(-1px) rotate(45deg)}
.btn:hover .arrow{transform:rotate(-45deg)}

/* hero */
.hero{height:100svh;min-height:560px;position:relative;display:grid;place-items:center}
.hero__center{text-align:center;margin-top:-18vh;padding:0 16px}
.hero__center .eyebrow{justify-content:center;margin-bottom:26px}
.hero__center .eyebrow::after{content:"";width:28px;height:1px;background:var(--grad)}
.hero__title{font-size:clamp(34px,5vw,80px);max-width:min(100%,1180px);margin:0 auto;text-wrap:balance}
.hero__cta{display:flex;gap:10px;justify-content:center;margin-top:34px;flex-wrap:wrap}
.hero__bottom{position:absolute;left:var(--gutter);right:var(--gutter);bottom:34px;display:flex;justify-content:space-between;align-items:flex-end;gap:24px}
.hero__bottom p{max-width:330px;font-size:15px;line-height:1.45;color:var(--gray)}
.scroll-hint{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:10px}
.scroll-hint i{width:1px;height:28px;background:var(--line);position:relative;overflow:hidden}
.scroll-hint i::after{content:"";position:absolute;left:0;top:-100%;width:1px;height:100%;background:linear-gradient(var(--blue),var(--violet),var(--pink));animation:drip 1.8s cubic-bezier(.6,0,.2,1) infinite}
@keyframes drip{to{top:100%}}

/* about */
.about{min-height:120vh;display:flex;align-items:center;padding:20vh 0}
.about__inner .eyebrow{border-bottom:1px solid var(--line);padding-bottom:22px;max-width:520px}
.about__lead{font-size:clamp(28px,3.4vw,52px);max-width:17em;line-height:1.08;letter-spacing:-.035em;font-weight:500}
.about__list{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,260px));gap:24px;margin-top:70px}
.about__list li{border-top:1px solid var(--line);padding-top:18px;font-family:var(--display);font-weight:600;font-size:18px}
.about__list span{font-family:var(--sans);font-weight:500;font-size:11px;display:block;margin-bottom:10px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;width:max-content}
.about__list small{display:block;font-family:var(--sans);font-weight:400;color:var(--muted);font-size:13px;margin-top:4px}

/* cards */
.build{padding:18vh 0}
.build__grid{display:grid;grid-template-columns:1fr 1.25fr;gap:6vw}
.build__side{position:sticky;top:22vh;align-self:start}
.build__side p{max-width:360px;margin:26px 0 30px}
.build__cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.col{display:grid;gap:16px;align-content:start}
.col--offset{margin-top:22vh}
.card,.agent,.step{background:rgba(12,15,24,.58);border:1px solid rgba(200,205,214,.08);border-radius:14px;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);transition:border-color .4s,background .4s,box-shadow .4s}
.card{padding:26px;min-height:300px;display:flex;flex-direction:column;justify-content:flex-end}
.card:hover,.agent:hover,.step:hover{border-color:rgba(99,91,255,.45);background:rgba(20,22,40,.62);box-shadow:0 20px 60px -30px rgba(30,155,255,.45)}
.card h3,.agent h3,.step h3{font-family:var(--display);font-weight:600;letter-spacing:-.03em;font-size:24px;line-height:1.1;margin:10px 0 12px}
.card p,.agent p,.step p{color:var(--muted);font-size:14px}
.tag{font-family:var(--sans);font-weight:500;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--blue)}

/* agents */
.agents{padding:18vh 0}
.agents__head{display:grid;grid-template-columns:1fr 1fr;gap:6vw;align-items:end}
.agents__head p{max-width:520px}
.filters{display:flex;flex-wrap:wrap;gap:6px;margin:50px 0 28px}
.filters button{font-family:var(--display);font-weight:500;font-size:11px;letter-spacing:.12em;text-transform:uppercase;padding:9px 16px;border-radius:999px;border:1px solid var(--glass-b);background:var(--glass);transition:border-color .3s,color .3s}
.filters button:hover{border-color:rgba(30,155,255,.5)}
.filters button.is-active{background:var(--grad);border-color:transparent;color:#fff}
.agents__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}
.agent{padding:22px}
.agent.is-hidden{display:none}
.agent__viz{height:120px;border-radius:10px;border:1px solid rgba(255,255,255,.06);background:radial-gradient(80% 120% at 50% 0,rgba(99,91,255,.16),transparent);margin-bottom:18px;display:flex;flex-wrap:wrap;align-content:center;justify-content:center;gap:6px;padding:12px;font-family:var(--sans);font-weight:500;font-size:10px;letter-spacing:.08em;text-transform:uppercase}
.agent__viz span{padding:5px 8px;border:1px solid var(--line);border-radius:6px;color:var(--muted)}
.agent__viz b{font-weight:500;padding:5px 8px;border-radius:6px;background:var(--grad);color:#fff}

/* stats */
.stats{padding:20vh 0;min-height:100vh}
.stats__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:80px}
.stat{padding-top:26px;position:relative}
.stat::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,var(--blue),var(--violet) 30%,var(--pink) 50%,var(--line) 75%)}
.stat__num{font-size:clamp(56px,7vw,112px);letter-spacing:-.06em;font-variant-numeric:tabular-nums}
.stat small{font-size:12px;color:var(--muted);letter-spacing:.04em}

/* process */
.process__pin{min-height:100vh;display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding:12vh 0}
.process__track{display:flex;gap:16px;padding:60px var(--gutter) 0;width:max-content}
.step{width:min(440px,80vw);min-height:360px;padding:30px;display:flex;flex-direction:column}
.step__n{font-size:110px;line-height:.8;letter-spacing:-.06em;margin-bottom:auto;background:linear-gradient(180deg,rgba(99,91,255,.55),rgba(99,91,255,0));-webkit-background-clip:text;background-clip:text;color:transparent}
.process__progress{margin:40px var(--gutter) 0;height:2px;background:var(--line);border-radius:2px;overflow:hidden}
.process__progress i{display:block;height:100%;background:var(--grad);transform-origin:left;transform:scaleX(0)}

/* faq */
.faq{padding:18vh 0}
.faq__grid{display:grid;grid-template-columns:1fr 1.4fr;gap:6vw}
.qa{border-top:1px solid var(--line)}
.qa:last-child{border-bottom:1px solid var(--line)}
.qa button{width:100%;text-align:left;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:26px 0;font-family:var(--display);font-weight:600;letter-spacing:-.03em;font-size:clamp(20px,1.9vw,28px);line-height:1.15;transition:color .3s}
.qa button:hover{color:var(--gray)}
.qa button i{flex:none;width:14px;height:14px;position:relative;transition:transform .5s cubic-bezier(.2,.8,.2,1),color .3s}
.qa button i::before,.qa button i::after{content:"";position:absolute;left:0;top:50%;width:100%;height:1.5px;background:currentColor}
.qa button i::after{transform:rotate(90deg)}
.qa button[aria-expanded="true"] i{transform:rotate(45deg);color:var(--blue)}
.qa__a{height:0;overflow:hidden}
.qa__a p{padding:0 0 26px;color:var(--muted);max-width:560px}

/* cta */
.cta{min-height:130vh;display:grid;place-items:center;text-align:center;padding:20vh 16px}
.cta__inner{max-width:900px}
.cta .eyebrow{justify-content:center}
.cta__title{font-size:clamp(52px,8.4vw,136px);letter-spacing:-.055em;margin-bottom:26px}
.cta p{max-width:440px;margin:0 auto}

/* footer */
.footer{padding:14vh 0 34px;background:linear-gradient(transparent,rgba(5,7,11,.92) 30%)}
.footer__big{font-size:clamp(34px,5.4vw,88px);line-height:1.02;border-bottom:1px solid var(--line);padding-bottom:60px;word-break:break-word}
.footer__big a em{opacity:.75;transition:opacity .4s}
.footer__big a:hover em{opacity:1}
.footer__cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;padding:50px 0}
.footer__cols>div{display:flex;flex-direction:column;gap:8px;font-size:14px}
.footer__cols>div a{transition:color .3s}
.footer__cols>div a:hover{color:var(--blue)}
.footer__brand img{width:min(280px,70vw);display:block;margin-bottom:22px}
.footer__cols p{max-width:420px;font-size:14px}
.footer__base{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:24px;font-size:12px;color:var(--muted)}

.line-mask{padding-bottom:.1em;margin-bottom:-.1em}

@media (max-width:900px){
  .nav__pill{display:none}
  .nav__logo img{height:18px}
  .hero__center{margin-top:-10vh}
  .hero__bottom{flex-direction:column-reverse;align-items:flex-start}
  .about__list,.build__grid,.agents__head,.faq__grid,.footer__cols{grid-template-columns:1fr}
  .build__side{position:static}
  .build__cols{grid-template-columns:1fr}
  .col--offset{margin-top:0}
  .card{min-height:220px}
  .stats__grid{grid-template-columns:1fr 1fr}
  .process__track{flex-direction:column;width:auto}
  .step{width:auto;min-height:0}
  .step__n{font-size:70px;margin-bottom:20px}
  .process__progress{display:none}
  .footer__base{flex-direction:column;gap:6px}
}
@media (max-width:420px){ .hero__center .eyebrow{letter-spacing:.18em;font-size:9px;gap:10px} .hero__center .eyebrow::before,.hero__center .eyebrow::after{width:16px} .btn--sm .arrow{display:none} .btn--sm{padding-right:16px} }
@media (prefers-reduced-motion:reduce){.grain,.scroll-hint i::after{animation:none}}
