/* =========================================================
   Juanman Software · «El Núcleo» (DISENO-WEB.md)
   Solo oscuro. Solo se animan transform y opacity en capas que se
   mueven de continuo; backdrop-filter solo en paneles quietos.
   ========================================================= */
:root{
  --bg:#07080b;--bg2:#0d0f14;--bg3:#131620;
  --ink:#efe9dc;--ink2:#c9c3b5;--dim:#8f8a7e;
  --rule:rgba(239,233,220,.12);--rule2:rgba(239,233,220,.28);
  --core:#ff2d55;--core2:#ff8a5b;--cyan:#00e5ff;--gold:#e8c35a;
  --mb:#ff2d55;--rar:#ffb020;--photo:#2fd18a;--video:#4da3ff;
  --word:#4da3ff;--cal:#2fd18a;--pres:#ffb020;--pdf:#ff5a4d;
  --glass:rgba(239,233,220,.055);--glass-line:rgba(239,233,220,.14);
  --ease:cubic-bezier(.2,.8,.2,1);--ease-in-out:cubic-bezier(.65,0,.35,1);
  --gut:max(20px,calc((100% - 1280px)/2));
  --u:'Unbounded','Arial Black',system-ui,sans-serif;--b:'Instrument Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --m:'Martian Mono',ui-monospace,Menlo,Consolas,monospace;--sg:'Montserrat','Instrument Sans',system-ui,sans-serif;
  --s:'Instrument Serif',Georgia,serif;
  --red:var(--core);--blue:var(--video);
}
*,*::before,*::after{box-sizing:border-box}
html{background:var(--bg);color-scheme:dark;scroll-padding-top:80px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{margin:0;color:var(--ink);font:400 17px/1.6 var(--b);overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
@supports (overflow:clip){body{overflow-x:clip}}
a{color:inherit}
::selection{background:var(--core);color:#fff}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
img,svg,canvas{max-width:100%}
img{height:auto}
code{font:400 .84em var(--m);background:rgba(239,233,220,.08);padding:.1em .4em;border-radius:3px}
kbd{font:600 12px var(--m);border:1px solid var(--rule2);border-bottom-width:2px;border-radius:4px;padding:1px 6px;background:rgba(239,233,220,.07);color:var(--ink);white-space:nowrap}
.wrap{width:min(1280px,100% - 40px);margin-inline:auto}
.narrow{width:min(880px,100% - 40px)}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.ic{width:1.15em;height:1.15em;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.skip{position:fixed;left:12px;top:-60px;z-index:300;background:var(--ink);color:#000;padding:10px 14px;font:600 13px var(--m);text-decoration:none}
.skip:focus{top:12px}
.small{font:400 14px/1.5 var(--b)}
.dim{color:var(--dim)}
.lbl{margin:0 0 10px;font:600 11px/1 var(--m);text-transform:uppercase;letter-spacing:.14em;color:var(--dim)}

/* ---------- tipografía ---------- */
.h2{margin:0 0 .5em;max-width:17em;font:800 clamp(30px,4.6vw,66px)/1.02 var(--u);letter-spacing:-.04em;text-wrap:balance}
.lead{margin:0 0 30px;max-width:36em;font:400 clamp(17px,1.35vw,21px)/1.5 var(--b);color:var(--ink2)}
.lead-c{margin-inline:auto;text-align:center}
.lab{position:relative;display:flex;align-items:center;gap:14px;margin:0 0 26px;font:600 12px/1 var(--m);text-transform:uppercase;letter-spacing:.14em;color:var(--dim)}
.lab span{color:var(--core)}
.lab::after{content:'';flex:1;height:1px;background:var(--rule);transform-origin:left;transition:transform .9s var(--ease)}
html.js:not(.static) .lab:not(.in)::after{transform:scaleX(0)}
.tl{text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0% 1px no-repeat;transition:background-size .3s var(--ease);padding-bottom:2px;color:var(--ink)}
.tl:hover,.tl:focus-visible{background-size:100% 1px}
.glass{background:var(--glass);border:1px solid var(--glass-line);border-radius:18px;-webkit-backdrop-filter:blur(18px) saturate(140%);backdrop-filter:blur(18px) saturate(140%);box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 30px 80px -30px rgba(0,0,0,.8)}

/* ---------- botones ---------- */
.get,.btn,.go{position:relative;display:inline-flex;justify-content:space-between;align-items:center;gap:24px;padding:17px 22px;color:#000;text-decoration:none;font:600 13px/1.2 var(--m);text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--ink);border-radius:12px;cursor:pointer;
  background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.65) 50%,transparent 62%) 160% 0/260% 100% no-repeat,var(--ink);transition:transform .2s var(--ease),box-shadow .2s var(--ease),background-position .6s var(--ease),color .2s,border-color .2s}
.get span{opacity:.62;white-space:nowrap;text-transform:none;letter-spacing:0}
.get:hover,.btn:hover,.go:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--c,var(--core));background-position:-60% 0,0 0}
.get-line,.btn-line,.go-line{color:var(--ink);border-color:var(--rule2);background:linear-gradient(105deg,transparent 38%,rgba(239,233,220,.16) 50%,transparent 62%) 160% 0/260% 100% no-repeat,transparent}
.btn{padding:14px 18px;gap:12px}
.btn-sm{padding:10px 14px;font-size:12px}
.get-off{opacity:.5;cursor:not-allowed}
.go{padding:14px 20px;gap:12px;font-size:12px}
.copy{font:600 10px var(--m);text-transform:uppercase;letter-spacing:.06em;background:none;border:1px solid var(--rule2);border-radius:6px;color:var(--ink);padding:5px 10px;cursor:pointer;transition:border-color .2s,background-color .2s,color .2s}
.copy:hover{border-color:var(--ink)}
.copy.ok{background:var(--photo);border-color:var(--photo);color:#00230f}
code.flash{animation:flash .2s}
@keyframes flash{50%{color:var(--cyan)}}

/* ---------- capas de fondo ---------- */
#core{position:fixed;inset:0;width:100%;height:100lvh;z-index:-1;display:block;pointer-events:none}
.core-css{display:none;position:fixed;left:0;top:0;z-index:-1;width:520px;height:520px;margin:-260px 0 0 -260px;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(255,241,230,.5) 0,transparent 18%),radial-gradient(circle,#ff8a5b 0,transparent 60%),radial-gradient(circle,#ff2d55 0,transparent 45%);
  transform:translate(calc(var(--cx,.72)*100vw),calc(var(--cy,.48)*100vh)) scale(var(--cs,1));transition:transform .9s var(--ease-in-out),opacity .9s;opacity:var(--ci,1);animation:breathe 4s ease-in-out infinite alternate}
html.no-js .core-css,html.no3d .core-css{display:block}
@keyframes breathe{from{filter:none;opacity:calc(var(--ci,1)*.85)}to{opacity:var(--ci,1)}}
.grain{position:fixed;inset:-20%;z-index:50;pointer-events:none;opacity:.055;width:140%;height:140%;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:300px;
  animation:grain 1.1s steps(6) infinite}
@keyframes grain{0%{transform:translate3d(-6%,2%,0)}17%{transform:translate3d(4%,-5%,0)}33%{transform:translate3d(-3%,6%,0)}50%{transform:translate3d(6%,3%,0)}67%{transform:translate3d(-5%,-3%,0)}83%{transform:translate3d(2%,5%,0)}100%{transform:translate3d(-6%,2%,0)}}
.vignette{position:fixed;inset:0;z-index:49;pointer-events:none;background:radial-gradient(120% 90% at 50% 40%,transparent 55%,rgba(0,0,0,.6))}
html:not(.no3d):not(.no-js) .vignette{display:none}
main,.foot{position:relative}

/* ---------- ignición ---------- */
.ign{position:fixed;inset:0;z-index:300;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;background:var(--bg)}
.ign svg{width:120px;height:120px;overflow:visible}
.ign circle{fill:none}
.ign-r0{stroke:rgba(239,233,220,.35);stroke-width:1.5}
.ign-r1{stroke:var(--core);stroke-width:1.5;stroke-dasharray:276;stroke-dashoffset:276;transform:rotate(-90deg);transform-origin:60px 60px;stroke-linecap:round}
.ign-c{fill:var(--core2)!important;transform-origin:60px 60px;transform-box:fill-box}
.ign-t{margin:14px 0 0;font:400 12px/1 var(--m);color:var(--dim)}
.ign-b{margin:24px 0 0;font:800 14px/1 var(--u);letter-spacing:.3em;opacity:0;transition:opacity .4s .3s}
.ign.on .ign-b{opacity:1}
.ign.out{opacity:0;transition:opacity .6s ease;pointer-events:none}
.ign.out .ign-t,.ign.out .ign-b,.ign.out .ign-r0,.ign.out .ign-r1{opacity:0;transition:opacity .25s}
.ign.out .ign-c{transform:scale(14);transition:transform .5s var(--ease-in-out)}
.ign.fast .ign-r1{stroke-dashoffset:0}

/* ---------- barra superior ---------- */
.top{position:fixed;z-index:60;inset:0 0 auto 0;height:64px;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:0 var(--gut);background:linear-gradient(rgba(7,8,11,.96) 50%,rgba(7,8,11,0))}
.mark{display:inline-flex;align-items:center;gap:12px;text-decoration:none;flex:none}
.mark img{display:block;width:40px;height:30px}
.glw{font:600 13px var(--m);letter-spacing:.08em;white-space:nowrap}.glw i{font-style:normal;color:var(--core)}
.top-nav{position:relative;display:flex;gap:2px}
.top-nav a{font:600 12px var(--m);text-transform:uppercase;letter-spacing:.1em;text-decoration:none;padding:10px 13px;white-space:nowrap;color:var(--ink2);transition:color .2s}
.top-nav a:hover,.top-nav a.on{color:var(--ink)}
.top-ind{position:absolute;left:0;bottom:2px;height:2px;width:100px;background:var(--core);transform-origin:left;transform:translateX(0) scaleX(0);transition:transform .45s var(--ease),opacity .3s;opacity:0}
.top-ind.show{opacity:1}
.pill{flex:none;background:var(--ink);color:#000;text-decoration:none;font:600 12px var(--m);text-transform:uppercase;letter-spacing:.08em;padding:11px 18px;border-radius:999px;transition:transform .2s var(--ease),box-shadow .2s}
.pill:hover{transform:translateY(-1px);box-shadow:0 6px 0 -2px var(--core)}
.menu-b,.menu-x{display:none;background:none;border:1px solid var(--rule2);border-radius:999px;color:var(--ink);width:42px;height:42px;place-items:center;cursor:pointer}
.menu-b .ic,.menu-x .ic{width:20px;height:20px}
.menu{position:fixed;inset:0;z-index:250;background:rgba(7,8,11,.96);display:flex;flex-direction:column;justify-content:center;padding:80px 28px 40px}
.menu[hidden]{display:none}
.menu nav{display:flex;flex-direction:column;gap:6px}
.menu nav a{display:flex;align-items:center;gap:16px;text-decoration:none;font:800 clamp(30px,9vw,48px)/1.15 var(--u);letter-spacing:-.045em;opacity:0;transform:translateY(24px);transition:opacity .45s var(--ease),transform .45s var(--ease)}
.menu nav a i{width:12px;height:12px;border-radius:50%;background:var(--c);flex:none}
.menu.open nav a{opacity:1;transform:none;transition-delay:calc(var(--k,0)*60ms)}
.menu-x{position:absolute;right:20px;top:11px;display:grid}

/* =========================================================
   PORTADA · hero
   ========================================================= */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:96px var(--gut) 96px}
.hero-in{max-width:min(880px,100%)}
.kick{display:flex;flex-wrap:wrap;align-items:center;gap:6px 0;margin:0 0 22px;font:600 12px/1 var(--m);text-transform:uppercase;letter-spacing:.14em;color:var(--dim)}
.kick>span+span::before{content:'·';margin:0 14px;color:var(--core)}
.kick .sig{vertical-align:middle}
.h1{margin:0 0 26px;font:800 clamp(42px,5.4vw,92px)/.98 var(--u);letter-spacing:-.045em}
.h1 .ln{white-space:nowrap}
.ln{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.1em}
.ln>span{display:block;will-change:transform}
html.js:not(.static):not(.entered) .hero .kick,html.js:not(.static):not(.entered) .hero .lead,html.js:not(.static):not(.entered) .hero .cta-row,html.js:not(.static):not(.entered) .hero .more,html.js:not(.static):not(.entered) .hero .chips,html.js:not(.static):not(.entered) .hero .hero-stats{opacity:0}
html.js:not(.static):not(.entered) .hero .ln>span{transform:translateY(110%) rotate(2deg)}
.hero .lead{max-width:30em}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 20px}
.cta-row .get{min-width:250px;position:relative}
.cta-row .get-mac{--c:var(--mb)}.cta-row .get-win{--c:var(--video)}
.get.rec::before{content:'tu sistema';position:absolute;top:-9px;right:12px;font:600 10px/1 var(--m);text-transform:uppercase;letter-spacing:.12em;background:var(--ink);color:#000;padding:4px 8px;border-radius:999px;border:1px solid #000}
.get-line.rec::before{background:var(--ink);color:#000}
.more{margin:0 0 26px}
.more .tl{display:inline-flex;align-items:center;gap:10px;font:600 13px var(--m);text-transform:uppercase;letter-spacing:.08em}
.more .tl::after{content:'↓';color:var(--core)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;gap:9px;padding:9px 15px;border:1px solid var(--glass-line);border-radius:999px;background:var(--glass);text-decoration:none;font:600 13px/1 var(--b);transition:border-color .2s,background-color .2s}
.chip i{width:8px;height:8px;border-radius:50%;background:var(--c)}
.chip:hover{border-color:var(--c)}
.hero-stats{position:absolute;left:var(--gut);right:var(--gut);bottom:34px;display:flex;flex-wrap:wrap;gap:6px 34px;font:400 12px/1 var(--m);color:var(--dim)}
.st b{font:800 22px/1 var(--u);color:var(--ink);margin-right:4px;letter-spacing:-.03em}
.scroll-hint{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;font:400 10px/1 var(--m);text-transform:uppercase;letter-spacing:.14em;color:var(--dim);text-decoration:none}
.scroll-hint i{display:block;width:1px;height:40px;background:var(--rule2);position:relative;overflow:hidden}
.scroll-hint i::after{content:'';position:absolute;inset:0;background:var(--ink);transform-origin:top;animation:fall 1.4s var(--ease-in-out) infinite}
@keyframes fall{0%{transform:scaleY(0)}60%{transform:scaleY(1);transform-origin:top}61%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ---------- manifiesto ---------- */
.stmt{padding:clamp(120px,16vw,220px) var(--gut);text-align:center;display:flex;flex-direction:column;align-items:center}
.stmt .lab{width:min(560px,100%);justify-content:center}
.stmt .lab::after{display:none}
.stmt-t{margin:0 auto;max-width:18ch;font:800 clamp(30px,4.6vw,66px)/1.04 var(--u);letter-spacing:-.04em;text-wrap:balance}
.stmt-t .w{display:inline-block;opacity:.14}
.stmt-t .w.hot{color:var(--core2)}
html.no-js .stmt-t .w{opacity:1}

/* ---------- los cuatro módulos ---------- */
.mods{position:relative;padding-block:clamp(96px,12vw,180px)}
.mods-head{margin-bottom:34px}
.mods-head .h2{margin:0}
.mod-stage{width:min(1280px,100% - 40px);margin-inline:auto;display:grid;gap:clamp(56px,8vw,96px)}
.mod-sel,.mod-prog{display:none}
.mod-card{display:grid;gap:22px;--c:var(--mb)}
.mod-shot{perspective:1400px;min-width:0}
.screen{position:relative;border:1px solid var(--glass-line);border-radius:14px;overflow:hidden;background:#05060a;box-shadow:0 0 0 1px color-mix(in oklab,var(--c) 35%,transparent),0 24px 70px -24px color-mix(in oklab,var(--c) 55%,transparent);transform-style:preserve-3d;will-change:transform}
.scr-bar{display:flex;gap:6px;align-items:center;height:28px;padding:0 12px;background:#12141b;border-bottom:1px solid var(--rule)}
.scr-bar i{width:9px;height:9px;border-radius:50%;background:#2a2d38}
.scr-bar i:nth-child(1){background:#ff5f57}.scr-bar i:nth-child(2){background:#febc2e}.scr-bar i:nth-child(3){background:#28c840}
.scr-img{position:relative;line-height:0;aspect-ratio:1400/860}
.shot-i{position:absolute;inset:0}
.shot-i:not(.on){opacity:0;pointer-events:none}
.shot-i{transition:opacity .45s var(--ease)}
.shot-i img{width:100%;height:100%;object-fit:cover;object-position:top left;display:block}
.scr-gl{position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.08) 50%,transparent 65%);transform:translateX(var(--gx,-30%))}
.subtabs{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.subtabs button{font:600 12px/1 var(--b);color:var(--ink2);background:var(--glass);border:1px solid var(--glass-line);border-radius:999px;padding:9px 14px;cursor:pointer;transition:color .2s,border-color .2s,background-color .2s}
.subtabs button[aria-selected=true]{color:#000;background:var(--c);border-color:var(--c)}
.mod-txt{min-width:0}
.mod-ic{display:block;width:56px;height:56px;border-radius:22%;margin-bottom:14px}
.mod-n{margin:0 0 10px;font-size:clamp(26px,3.2vw,48px);line-height:1.05}
.mod-txt h3{margin:0 0 12px;font:800 clamp(20px,1.8vw,26px)/1.15 var(--u);letter-spacing:-.035em;color:var(--c)}
.mod-txt p{margin:0 0 16px;color:var(--ink2);font-size:16px;line-height:1.55}
.mod-txt .mod-n{margin-bottom:10px}
.facts{list-style:none;margin:0 0 20px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.facts li{font:600 11px/1 var(--m);padding:8px 11px;border:1px solid color-mix(in oklab,var(--c) 40%,var(--rule));border-radius:999px;color:var(--ink2)}
.mod-cta{display:flex!important;flex-wrap:wrap;gap:10px;margin:0!important}
.mod-cta .btn{--c:var(--c)}
/* modo «atraque» (escritorio, JS): sección fijada */
.mods.stage-on{padding:0;height:100vh;height:100svh;display:flex;flex-direction:column}
.stage-on .mods-head{padding-top:78px;margin-bottom:0;display:flex;align-items:baseline;gap:28px}
.stage-on .mods-head .lab{margin:0;flex:none}.stage-on .mods-head .lab::after{display:none}
.stage-on .mods-head .h2{font-size:clamp(24px,2.6vw,38px);margin:0}
.stage-on .mod-stage{flex:1;min-height:0;gap:0 clamp(20px,2.4vw,40px);grid-template-columns:200px minmax(0,1fr) minmax(300px,360px);grid-template-rows:minmax(0,1fr) auto;align-items:center;padding-bottom:22px}
.stage-on .mod-sel{display:flex;flex-direction:column;gap:6px;grid-column:1;grid-row:1}
.stage-on .mod-card{display:contents}
.stage-on .mod-shot{grid-column:2;grid-row:1}
.stage-on .mod-txt{grid-column:3;grid-row:1}
.stage-on .mod-card:not(.is-active):not(.leaving) .mod-txt,.stage-on .mod-card:not(.is-active):not(.leaving) .mod-shot{visibility:hidden;pointer-events:none}
.stage-on .mod-shot,.stage-on .mod-txt{opacity:1}
.stage-on .mod-txt p{font-size:14.5px;line-height:1.5;margin-bottom:12px}
.stage-on .mod-ic{width:44px;height:44px;margin-bottom:8px}
.stage-on .mod-n{font-size:clamp(24px,2.4vw,36px)}
.stage-on .mod-txt h3{font-size:clamp(17px,1.5vw,22px)}
.stage-on .facts{margin-bottom:14px}
.stage-on .mod-prog{display:flex;grid-column:1/-1;grid-row:2;gap:6px;margin-top:14px}
.mod-prog i{flex:1;height:2px;background:var(--rule);position:relative;overflow:hidden}
.mod-prog i::after{content:'';position:absolute;inset:0;background:var(--c,var(--core));transform-origin:left;transform:scaleX(var(--p,0))}
.mod-sel button{display:flex;align-items:center;gap:12px;text-align:left;background:none;border:0;border-left:3px solid transparent;padding:10px 0 10px 14px;color:var(--dim);font:800 clamp(18px,1.8vw,26px)/1.05 var(--u);letter-spacing:-.045em;cursor:pointer;transition:color .3s,border-color .3s}
.mod-sel button img{width:40px;height:40px;border-radius:22%;opacity:.45;transition:opacity .3s;flex:none}
.mod-sel button[aria-selected=true]{color:var(--ink);border-color:var(--c)}
.mod-sel button[aria-selected=true] img{opacity:1}
.mod-sel button:hover{color:var(--ink2)}

/* ---------- Tu IA ---------- */
.ia{padding-block:clamp(96px,12vw,180px)}
.ia .h2{text-align:center;margin-inline:auto}
.console{position:relative;max-width:1100px;margin:0 auto 40px;border:1px solid var(--glass-line);border-radius:18px;overflow:hidden;background:rgba(7,8,11,.2);box-shadow:0 30px 80px -30px rgba(0,0,0,.8)}
.eng{display:flex;flex-wrap:wrap;gap:8px;padding:14px;border-bottom:1px solid var(--glass-line);background:rgba(7,8,11,.62);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.engine{font:600 12px/1 var(--b);color:var(--ink2);background:var(--glass);border:1px solid var(--glass-line);border-radius:999px;padding:10px 14px;cursor:pointer;transition:color .2s,border-color .2s,background-color .2s}
.engine.on,.engine[aria-checked=true]{background:var(--ink);color:#000;border-color:var(--ink)}
.engine:hover{border-color:var(--rule2)}
.con-grid{display:grid;grid-template-columns:minmax(0,1fr) 220px minmax(0,1fr);min-height:340px}
.con-col{padding:22px;background:rgba(7,8,11,.62);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);display:flex;flex-direction:column;gap:14px;min-width:0}
.con-req{border-right:1px solid var(--glass-line)}.con-plan{border-left:1px solid var(--glass-line)}
.req-box{font:400 16px/1.5 var(--m);color:var(--ink);min-height:96px;overflow-wrap:anywhere}
.caret{font-style:normal;color:var(--core2);animation:blink 1s steps(2) infinite}
@keyframes blink{50%{opacity:0}}
.mini-btn{align-self:flex-start;margin-top:auto;font:600 12px var(--b);color:var(--ink2);background:none;border:1px solid var(--glass-line);border-radius:999px;padding:8px 14px;cursor:pointer}
.mini-btn:hover{border-color:var(--rule2);color:var(--ink)}
.con-mid{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;text-align:center;padding:20px 8px}
.core-hole{flex:1;min-height:220px;width:100%}
.meter{padding-top:10px;position:relative;text-shadow:0 0 10px #000,0 0 18px #000}
.meter .lbl{line-height:1.6;font-size:10px;letter-spacing:.1em}
.meter-v{display:flex;align-items:center;justify-content:center;gap:8px;margin:0 0 4px;font:800 clamp(17px,1.6vw,22px)/1.1 var(--u);letter-spacing:-.04em;color:var(--ink)}
.lock{display:inline-grid;color:var(--photo);transition:transform .4s var(--ease)}
.lock .ic{width:20px;height:20px}
.plan{margin:0;font:400 12.5px/1.6 var(--m);color:var(--ink2);white-space:pre-wrap;overflow-wrap:anywhere;min-height:150px;flex:0 0 auto}
.plan code{background:none;padding:0;font-size:inherit}
.plan-doc{font:600 17px/1.4 var(--u);letter-spacing:-.03em;display:flex;flex-direction:column;gap:6px}
.plan-doc p{margin:0;color:var(--ink)}.plan-doc .g{font:400 12px var(--m);color:var(--dim);letter-spacing:0}
.plan-doc[hidden]{display:none}
.plan-bar{height:2px;background:var(--rule)}
.plan-bar i{display:block;height:100%;background:var(--core);transform-origin:left;transform:scaleX(0)}
.plan-btns{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:auto}
.done-chip{display:inline-flex;align-items:center;gap:8px;font:600 11px/1 var(--m);color:var(--photo);border:1px solid var(--photo);padding:8px 10px;border-radius:999px}
.done-chip[hidden]{display:none}
.trace{position:absolute;left:0;top:0;width:60px;height:2px;background:var(--core2);opacity:0;pointer-events:none;border-radius:2px}
.ia-pact{list-style:none;margin:0 auto;padding:0;max-width:1100px;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,40px)}
.ia-pact li{border-top:1px solid var(--ink);padding-top:20px}
.ia-pact .ic{width:26px;height:26px;color:var(--core2);margin-bottom:12px}
.ia-pact h3{margin:0 0 8px;font:800 clamp(20px,1.8vw,26px)/1.15 var(--u);letter-spacing:-.035em}
.ia-pact p{margin:0;color:var(--ink2);font-size:15.5px}
.ia-note{max-width:1100px;margin:34px auto 0}

/* ---------- bento ---------- */
.bento{padding-block:clamp(96px,12vw,180px)}
.grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:240px;gap:16px;grid-template-areas:"c1 c2 c2 c3" "c4 c4 c5 c6" "c7 c7 c8 c8"}
.card{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;padding:24px;border:1px solid var(--glass-line);border-radius:18px;background:var(--glass);-webkit-backdrop-filter:blur(18px) saturate(140%);backdrop-filter:blur(18px) saturate(140%);box-shadow:inset 0 1px 0 rgba(255,255,255,.06);transition:transform .35s var(--ease),border-color .3s}
.card::before{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(240px at var(--mx,50%) var(--my,50%),rgba(239,233,220,.08),transparent 60%);opacity:0;transition:opacity .3s}
.card:hover{border-color:var(--rule2)}
.card:hover::before{opacity:1}
@media (hover:hover){.card:hover{transform:translateY(-4px)}}
.card>*{position:relative}
.card .num{display:block;margin:0 0 10px;font:800 clamp(26px,3.2vw,48px)/1.05 var(--u);letter-spacing:-.045em}
.card p{margin:0;color:var(--ink2);font-size:14px;line-height:1.5}
.c1{grid-area:c1}.c2{grid-area:c2}.c3{grid-area:c3}.c4{grid-area:c4}.c5{grid-area:c5}.c6{grid-area:c6}.c7{grid-area:c7}.c8{grid-area:c8}
.gpl{position:absolute!important;inset:0;overflow:hidden;opacity:.045;font:400 11px/1.6 var(--m);color:var(--ink);padding:12px;pointer-events:none}
.gpl span{display:block;margin-bottom:10px;animation:gplup 40s linear infinite}
@keyframes gplup{to{transform:translateY(-100%)}}
.c3 .words{display:block;overflow:hidden;line-height:1.15;min-height:1.2em;font-size:clamp(30px,3.6vw,52px)}
.c3 .wd{display:inline-block;color:var(--core2)}
.c3 .n8{color:var(--ink)}
.c4{display:grid;grid-template-columns:auto 1fr;grid-template-rows:1fr auto auto;column-gap:22px;align-content:end}
.themes{grid-row:1;grid-column:1/-1;display:flex;gap:18px;align-items:center;align-self:start}
.mini{position:relative;flex:none;width:120px;height:76px;border-radius:8px;border:1px solid var(--mb-b);background:var(--mb-bg);transition:background-color .35s,border-color .35s;--mb-bg:#0b0809;--mb-p:#17100f;--mb-i:#f7efe4;--mb-b:#8a7228;--mb-btn:#c8102e}
.mini[data-t=claro]{--mb-bg:#f2f2f6;--mb-p:#ffffff;--mb-i:#1d1d1f;--mb-b:#cfcfd6;--mb-btn:#0a84ff}
.mini[data-t=oscuro]{--mb-bg:#1c1c1e;--mb-p:#26262a;--mb-i:#f2f2f4;--mb-b:#3a3a3f;--mb-btn:#0a84ff}
.mini i{position:absolute;display:block;border-radius:3px;transition:background-color .35s}
.m-bar{left:0;right:0;top:0;height:14px;background:var(--mb-p);border-radius:7px 7px 0 0!important}
.m-l1{left:10px;top:26px;width:58px;height:5px;background:var(--mb-i);opacity:.85}
.m-l2{left:10px;top:38px;width:80px;height:5px;background:var(--mb-i);opacity:.4}
.m-btn{left:10px;bottom:9px;width:34px;height:12px;background:var(--mb-btn)}
.tpills{display:flex;flex-direction:column;gap:6px}
.tpills button{display:inline-flex;align-items:center;gap:8px;font:600 12px/1 var(--b);color:var(--ink2);background:none;border:1px solid var(--glass-line);border-radius:999px;padding:7px 12px;cursor:pointer}
.tpills button .ic{width:14px;height:14px}
.tpills button.on{background:var(--ink);color:#000;border-color:var(--ink)}
.c4 .num,.c4 p{grid-column:1/-1}
.radar{position:absolute!important;right:-40px;top:-40px;width:200px;height:200px;border-radius:50%;border:1px solid var(--rule);overflow:hidden;background:repeating-radial-gradient(circle,transparent 0 24px,rgba(239,233,220,.07) 25px)}
.radar::after{content:'';position:absolute;inset:0;background:conic-gradient(from 0deg,rgba(47,209,138,.38),transparent 60deg);animation:spin 4s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.os-ic{display:flex;gap:14px;margin-bottom:auto;color:var(--ink)}.os-ic .ic{width:34px;height:34px}
.c7 .sig-big{margin-bottom:auto;padding-top:6px}
.exts{position:absolute!important;left:0;right:0;top:24px;overflow:hidden;font:400 13px/1 var(--m);color:var(--dim);white-space:nowrap}
.exts div{display:inline-flex;gap:22px;animation:marq 40s linear infinite;width:max-content}
@keyframes marq{to{transform:translateX(-50%)}}

/* ---------- descargar ---------- */
.dl{padding-block:clamp(96px,12vw,180px)}
.hangares{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2vw,28px);margin:20px 0 30px;align-items:start}
.hangar{position:relative;padding:clamp(20px,2.4vw,34px);display:flex;flex-direction:column;gap:18px;transition:border-color .6s,box-shadow .6s}
.hangar.lit,.hangar.rec{border-color:color-mix(in oklab,var(--c) 55%,transparent);box-shadow:0 0 0 1px color-mix(in oklab,var(--c) 35%,transparent),0 24px 70px -24px color-mix(in oklab,var(--c) 55%,transparent)}
.hangares>*{min-width:0}
.hangar>header{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}
.hangar h3{margin:0;font:800 clamp(30px,4.6vw,66px)/1 var(--u);letter-spacing:-.04em;color:var(--ink)}
.hg-ic{width:44px;height:44px;border-radius:12px;background:color-mix(in oklab,var(--c) 22%,transparent);color:var(--c);display:grid;place-items:center;flex:none}
.hg-ic .ic{width:24px;height:24px}
.hangar .small{margin:2px 0 0;color:var(--dim)}
.rec-b{white-space:nowrap;display:none;margin-left:auto;align-self:flex-start;font:600 10px/1 var(--m);text-transform:uppercase;letter-spacing:.12em;background:var(--ink);color:#000;padding:5px 9px;border-radius:999px}
.hangar.rec .rec-b{display:inline-block}
.hg-list{list-style:none;margin:0;padding:0}
.hg-list li{display:grid;grid-template-columns:40px minmax(0,1fr);gap:4px 14px;align-items:center;padding:14px 0;border-top:1px solid var(--rule)}
.hg-list li img{width:40px;height:40px;border-radius:22%;grid-row:1/3}
.hn{display:flex;flex-direction:column;min-width:0}
.hn b{font:800 18px/1.2 var(--u);letter-spacing:-.04em}
.hn small{font:400 11px/1.5 var(--m);color:var(--dim);overflow-wrap:anywhere}
.hb{grid-column:2;display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.hb .get{padding:11px 14px;gap:14px;font-size:12px;min-width:0}
.hg-list .get span{display:inline-block;transition:transform .2s}
.hg-list li:hover .get:not(.get-line) span{animation:bump .6s}
@keyframes bump{0%{transform:translateY(0)}35%{transform:translateY(3px)}100%{transform:translateY(0)}}
.cmdbox{display:flex;gap:8px;align-items:stretch}
.cmdbox code{flex:1;min-width:0;display:block;padding:12px;background:#000;border:1px solid var(--rule);border-radius:8px;color:#c4ff3d;font-size:12.5px;line-height:1.5;overflow-wrap:anywhere;word-break:break-all}
.cmdbox .copy{flex:none}
.hg-note{margin:-6px 0 0!important;color:var(--ink2)!important}
.hg-more{margin:0;font-size:14px}
.hashes summary{cursor:pointer;font:600 12px var(--m);text-transform:uppercase;letter-spacing:.1em;color:var(--ink2);padding:12px 0}
.hash{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:0 0 14px;font:400 11px/1.7 var(--m);color:var(--dim)}
.hash code{background:none;padding:0;color:#c4beaf;overflow-wrap:anywhere;word-break:break-all;min-width:0;flex:1 1 300px}
.dl-foot{max-width:70ch}

/* ---------- quién ---------- */
.who{padding-block:clamp(96px,12vw,180px)}
.who-g{display:grid;grid-template-columns:5fr 7fr;gap:clamp(30px,5vw,80px);align-items:start}
.who-t p{color:var(--ink2);font-size:clamp(16px,1.35vw,19px)}.who-t b{color:var(--ink)}
.who-t .h2{font-size:clamp(28px,3.6vw,52px)}
.h2 .sig{display:inline-block;padding-bottom:0;margin-bottom:.95em;vertical-align:baseline}
.links{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.links a{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) 40px;gap:24px;align-items:center;padding:26px 0;border-bottom:1px solid var(--rule);text-decoration:none;transition:background-color .2s,color .2s,padding .25s}
.l-t{font:800 clamp(22px,2.6vw,38px)/1.05 var(--u);letter-spacing:-.045em}
.l-d{color:var(--dim);font-size:15px}.l-a{font:400 28px var(--m);text-align:right;transition:transform .25s}
.links a:hover{background:var(--c);color:#000;padding-inline:20px}.links a:hover .l-d{color:#000}.links a:hover .l-a{transform:translate(4px,-4px)}

/* ---------- el taller (raíl) ---------- */
.rail{padding-block:clamp(96px,12vw,180px) clamp(60px,8vw,120px);overflow:hidden}
.rail-head{margin-bottom:34px}.rail-head .lead{max-width:48em;margin:0}
.rail-stage{width:100%}
.rail.rail-pin{height:100vh;height:100svh;display:flex;flex-direction:column;justify-content:center;padding-block:72px 32px}
.rail-pin .rail-head{margin-bottom:28px}
.rail-track{list-style:none;margin:0;padding:0 var(--gut);display:flex;gap:20px;width:max-content}
.rc{position:relative;flex:none;width:320px;height:220px;border:1px solid var(--glass-line);border-radius:18px;background:var(--glass);overflow:hidden;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transition:transform .35s var(--ease),border-color .3s}
.rc>a{display:block;height:100%;text-decoration:none}
.rc>a,.rc{padding:0}
.rc>a>*,.rc>:not(a){position:absolute}
.rc-n{left:18px;top:16px;font:400 11px var(--m);color:var(--dim)}
.rc-name{left:18px;top:42px;font-size:clamp(28px,2.4vw,38px);line-height:1.1;transition:letter-spacing .35s var(--ease)}
.rc-d{left:18px;right:18px;top:96px;font-size:13px;line-height:1.45;color:var(--ink2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.rc-s{left:18px;bottom:16px;font:600 11px/1 var(--m);text-transform:uppercase;letter-spacing:.08em;color:var(--dim);border:1px solid var(--rule2);padding:7px 10px;border-radius:999px}
.rc-free{background:var(--ink);color:#000;border-color:var(--ink)}
.rc-th{right:14px;bottom:-110px;width:150px;height:auto;border-radius:8px;border:1px solid var(--glass-line);transition:transform .45s var(--ease)}
@media (hover:hover){.rc:hover{transform:translateY(-6px);border-color:var(--c)}.rc:hover .rc-name{letter-spacing:.02em}.rc-f:hover .rc-th{transform:translateY(-135px)}}

/* ---------- pie ---------- */
.foot{padding:70px 0 34px;overflow:hidden}
.foot-big{margin:0 0 30px;font:800 clamp(30px,7.4vw,136px)/1 var(--u);letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1px rgba(239,233,220,.22);white-space:nowrap;text-align:center;background:linear-gradient(rgba(239,233,220,.1),rgba(239,233,220,.1)) no-repeat;-webkit-background-clip:text;background-clip:text;background-size:100% 0%;transition:background-size 1.2s var(--ease)}
.foot.in .foot-big{background-size:100% 100%;-webkit-text-fill-color:transparent}
.foot-sign{margin:0 0 34px;text-align:center}
.foot-in{width:min(1280px,100% - 40px);margin:0 auto;display:flex;flex-wrap:wrap;gap:20px 60px;justify-content:space-between;font:400 12.5px/1.8 var(--m);color:var(--dim)}
.foot-in p{margin:0}.foot-in a{color:var(--ink);text-underline-offset:3px}.foot-in b{color:var(--ink);font-weight:600}

/* ---------- firma «creado por JUANMANWORLD» ---------- */
.sig{position:relative;display:inline-flex;align-items:baseline;gap:.55em;font-size:14px;line-height:1;white-space:nowrap;padding-bottom:1.45em;text-transform:none;letter-spacing:0}
.sig-sm{font-size:14px}.sig-md{font-size:16px}.sig-hero{font-size:28px}
.sig-p{font:400 .85em var(--b);color:var(--dim)}
.sig-w{position:relative;display:inline-block}
.sig b{display:inline-block;font:300 1em/1 var(--sg);letter-spacing:.28em;text-transform:uppercase;color:rgba(239,233,220,.88);overflow:hidden;vertical-align:baseline;position:relative}
.sig b i{display:inline-block;font-style:normal;transition:opacity .09s linear}
.sig b::after{content:'';position:absolute;inset:0;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.55) 50%,transparent 60%);transform:translateX(-120%);animation:sweep 9s var(--ease-in-out) infinite;animation-play-state:paused;mix-blend-mode:overlay}
.sig.on b::after{animation-play-state:running}
@keyframes sweep{0%{transform:translateX(-120%)}12%,100%{transform:translateX(120%)}}
.sig-ru{position:absolute;left:0;top:100%;width:100%;height:auto;aspect-ratio:10/1;overflow:visible;margin-top:.1em}
.sig-ru path{fill:none;stroke:url(#sig-g);stroke-width:1.6px;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0;transition:stroke-dashoffset .7s var(--ease)}
.sig-hero .sig-ru path{stroke-width:2.4px}
.sig-dot{fill:var(--gold);r:5px;filter:drop-shadow(0 0 6px var(--gold))}
.sig-hero .sig-dot{r:3.5px}
html.js .sig:not(.in) b i{opacity:0}
html.js .sig:not(.in) .sig-ru path{stroke-dashoffset:1}
html.js .sig:not(.in) .sig-dot{opacity:0}
.sig.mute{opacity:.6}

.lead,.who-t p,.dl-foot,.ia-note,.mods-head .h2{text-shadow:0 0 16px rgba(7,8,11,.9),0 0 4px rgba(7,8,11,.6)}
.who-l .links li{background:rgba(7,8,11,.55)}

/* ?og: modo para generar img/og.jpg (1200x630) */
.og .top,.og .scroll-hint,.og .hero-stats,.og .grain,.og .chips,.og .more,.og .hero .lead{display:none}
.og .hero{justify-content:center;padding-inline:64px}

/* ---------- toast, cursor, cortinilla ---------- */
.toast{position:fixed;left:50%;bottom:34px;z-index:400;transform:translate(-50%,20px);opacity:0;background:var(--ink);color:#000;font:600 12px/1 var(--m);padding:12px 18px;border-radius:999px;pointer-events:none;transition:opacity .3s,transform .3s var(--ease)}
.toast.on{opacity:1;transform:translate(-50%,0)}
.cur-dot,.cur-ring{position:fixed;left:0;top:0;z-index:500;pointer-events:none;border-radius:50%;opacity:0;transition:opacity .2s}
.cur-dot{width:6px;height:6px;margin:-3px 0 0 -3px;background:var(--ink)}
.cur-ring{width:36px;height:36px;margin:-18px 0 0 -18px;border:1px solid rgba(239,233,220,.7);display:grid;place-items:center;font:600 10px/1 var(--m);color:var(--ink);transition:width .25s var(--ease),height .25s var(--ease),margin .25s var(--ease),border-color .25s,opacity .2s,border-radius .25s}
html.cur .cur-dot,html.cur .cur-ring{opacity:1}
html.cur,html.cur a,html.cur button,html.cur summary{cursor:none}
.cur-ring.link{width:56px;height:56px;margin:-28px 0 0 -28px;border-color:var(--cc,var(--ink))}
.cur-ring.core{width:72px;height:72px;margin:-36px 0 0 -36px}
.cur-ring.txt{width:2px;height:22px;margin:-11px 0 0 -1px;border-radius:1px;background:var(--ink)}
.cur-ring.down{transform:scale(.85)}
.fx-curtain{position:fixed;inset:0;z-index:600;display:grid;place-items:center;pointer-events:none;transform:translateY(-100%);overflow:hidden}
.fx-curtain span{font:800 clamp(34px,7vw,130px)/1 var(--u);letter-spacing:-.05em;white-space:nowrap}

/* =========================================================
   PÁGINAS DE SISTEMA (mac.html / windows.html) y aviso
   ========================================================= */
.sec{padding:clamp(72px,9vw,130px) 0}
.glx{position:relative;display:block;color:var(--ink);white-space:nowrap}
.glx::before,.glx::after{content:attr(data-t);position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;white-space:nowrap}
.glx::before{color:var(--core);clip-path:inset(0 0 100% 0);animation:glA 4.6s steps(1) infinite}
.glx::after{color:var(--cyan);clip-path:inset(100% 0 0 0);animation:glB 3.8s steps(1) infinite}
@keyframes glA{0%{clip-path:inset(0 0 100% 0)}5%{clip-path:inset(10% 0 66% 0);transform:translate(-.06em,0)}7%{clip-path:inset(58% 0 18% 0);transform:translate(.045em,0)}9%{clip-path:inset(0 0 100% 0);transform:none}48%{clip-path:inset(32% 0 46% 0);transform:translate(-.08em,0)}50%{clip-path:inset(72% 0 6% 0);transform:translate(.05em,0)}52%,100%{clip-path:inset(0 0 100% 0);transform:none}}
@keyframes glB{0%{clip-path:inset(100% 0 0 0)}12%{clip-path:inset(40% 0 38% 0);transform:translate(.07em,0)}14%{clip-path:inset(8% 0 78% 0);transform:translate(-.04em,0)}16%{clip-path:inset(100% 0 0 0);transform:none}63%{clip-path:inset(62% 0 14% 0);transform:translate(.09em,0)}65%{clip-path:inset(20% 0 60% 0);transform:translate(-.05em,0)}67%,100%{clip-path:inset(100% 0 0 0);transform:none}}
.glx.hit{animation:glHit .24s steps(3)}
@keyframes glHit{0%{transform:translate(.025em,0) skewX(-7deg)}40%{transform:translate(-.035em,0) skewX(6deg)}70%{transform:translate(.02em,.01em) skewX(-3deg)}100%{transform:none}}
.glx.hit::before{clip-path:inset(18% 0 42% 0);transform:translate(-.07em,0);animation:none}
.glx.hit::after{clip-path:inset(56% 0 8% 0);transform:translate(.07em,0);animation:none}

.os-hero{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:clamp(28px,4vw,72px);align-items:center;min-height:min(100vh,940px);padding:clamp(108px,15vh,150px) var(--gut) clamp(48px,8vh,96px)}
.os-copy{container-type:inline-size;min-width:0}
.os-h{position:relative;display:inline-block;margin:0 0 .22em;padding-right:.12em;font:800 clamp(56px,9vw,150px)/1 var(--u);letter-spacing:-.055em}
.os-h .glx{position:relative;z-index:1}
.os-h::before{content:attr(data-x);position:absolute;left:0;top:0;z-index:0;white-space:nowrap;pointer-events:none}
.os-mac .os-h{font:italic 500 clamp(80px,min(34cqi,22vh),176px)/.95 'Bodoni Moda',var(--s);letter-spacing:-.04em}
.os-mac .os-h .glx{background:linear-gradient(105deg,#fff 4%,#ffd3e4 24%,#e2d2ff 44%,#c6e9ff 63%,#fff1d2 82%,#fff 98%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:#ffe3ee}
.os-mac .os-h::before{color:#3a1626;text-shadow:.01em .012em 0 #4a1c31,.02em .024em 0 #561f38,.03em .036em 0 #5f2040,.04em .048em 0 #ff2d55,.05em .06em .1em rgba(0,0,0,.6)}
.os-win .os-h{font:800 clamp(40px,min(12.5cqi,13.5vh),104px)/1.05 var(--u);letter-spacing:-.055em}
.os-win .os-h .glx{background:linear-gradient(175deg,#e4f6ff 0%,#9ad8ff 30%,#4da3ff 58%,#1d66d8 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:#4da3ff}
.os-win .os-h::before{color:#0a2a5c;text-shadow:.012em .012em 0 #0b3270,.024em .024em 0 #0c387d,.036em .036em 0 #0d3f8b,.048em .048em 0 #0f4799,.06em .06em .12em rgba(0,0,0,.7)}
.os-h .glx::before,.os-h .glx::after{-webkit-text-fill-color:currentColor;background:none}
.os-sub{margin:0 0 30px;max-width:33em;color:var(--ink2);font-size:clamp(16px,1.35vw,19px)}
.os-cta{display:flex;flex-wrap:wrap;gap:12px;align-items:stretch;margin-bottom:22px}
.os-cta .get{flex:0 1 auto;min-width:0}
.os-more{margin:0;color:var(--dim);font-size:15px}.os-more a{color:var(--ink);text-underline-offset:3px}
html.js:not(.static):not(.entered) .os-copy>*{opacity:0}

.osv-wrap{overflow:hidden;justify-self:end;width:min(100%,680px);padding:clamp(14px,2vw,26px);border:1px solid var(--glass-line);border-radius:18px;background:var(--glass);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 30px 80px -30px rgba(0,0,0,.8)}
.osv{position:relative;margin-inline:auto;width:min(100%,640px,76vh);aspect-ratio:16/11;perspective:1600px}
.osv-tilt{position:absolute;inset:0;will-change:transform}
.osv-glow{position:absolute;inset:-12%;z-index:-1;pointer-events:none}
.win{position:absolute;margin:0;overflow:hidden;background:#0d0d0f;line-height:0}
.win img{display:block;width:100%;height:auto}
.bar{display:flex;align-items:center;gap:6px;height:24px;padding:0 10px;font:500 11px/1 var(--b);color:rgba(255,255,255,.62);white-space:nowrap;overflow:hidden}
.bar span{flex:1;overflow:hidden;text-overflow:ellipsis}
.osv-mac .osv-glow{background:radial-gradient(38% 42% at 28% 40%,rgba(255,45,85,.34),transparent 70%),radial-gradient(36% 38% at 78% 55%,rgba(150,120,255,.3),transparent 70%),radial-gradient(30% 30% at 52% 92%,rgba(255,200,140,.2),transparent 70%)}
.osv-mac .win{border-radius:11px;box-shadow:0 0 0 1px rgba(255,255,255,.16),inset 0 1px 0 rgba(255,255,255,.25),0 40px 70px -24px rgba(0,0,0,.9)}
.osv-mac .bar{background:linear-gradient(#2c2b30,#222126);border-bottom:1px solid rgba(0,0,0,.5)}
.osv-mac .bar i{width:10px;height:10px;border-radius:50%;flex:none;background:#ff5f57;box-shadow:inset 0 0 0 .5px rgba(0,0,0,.25)}
.osv-mac .bar i:nth-child(2){background:#febc2e}.osv-mac .bar i:nth-child(3){background:#28c840}
.osv-mac .bar span{text-align:center;margin-right:46px}
.osv-mac .w2{right:0;top:2%;width:64%;opacity:.88}
.osv-mac .w1{left:0;top:16%;width:80%}
.pearl{position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 30%,rgba(255,230,250,.22) 42%,rgba(200,230,255,.16) 48%,transparent 60%);transform:translateX(-110%);animation:pearl 7s var(--ease) infinite 1.8s;animation-play-state:paused}
.osv.on .pearl{animation-play-state:running}
@keyframes pearl{0%{transform:translateX(-110%)}45%,100%{transform:translateX(110%)}}
.dock{position:absolute;left:0;right:0;margin-inline:auto;width:max-content;bottom:0;display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:18px;border:1px solid transparent;background:linear-gradient(135deg,#3a3644,#1e1c24) padding-box,linear-gradient(120deg,#ffd1e3,#cdb8ff,#b5e0ff,#fff1c9) border-box;box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 20px 40px -10px rgba(0,0,0,.8)}
.dock img,.taskbar img{width:clamp(26px,3.4vw,38px);height:auto;border-radius:22%;display:block}
.dock span,.taskbar span{display:grid;place-items:center;width:clamp(26px,3.4vw,38px);aspect-ratio:1;border-radius:24%;background:var(--c);color:#0a0a0a;font:800 clamp(9px,1vw,12px)/1 var(--u);letter-spacing:-.04em}
.osv-win .osv-glow{background:radial-gradient(45% 45% at 30% 35%,rgba(0,120,212,.42),transparent 70%),radial-gradient(40% 40% at 78% 65%,rgba(0,200,255,.26),transparent 70%)}
.desk{position:absolute;inset:0 0 15% 0;border-radius:10px;overflow:hidden;background:linear-gradient(150deg,#0b2a52,#061833 55%,#0a1f3f);box-shadow:0 0 0 1px rgba(120,190,255,.22),0 40px 70px -24px rgba(0,0,0,.9)}
.snap{position:absolute;inset:0;display:grid;grid-template-columns:1.22fr 1fr;grid-template-rows:1fr 1fr;gap:6px;padding:6px}
.fw{position:relative;border-radius:8px;display:flex;flex-direction:column;box-shadow:0 0 0 1px rgba(255,255,255,.12),0 10px 24px -8px rgba(0,0,0,.7)}
.fw.fa{grid-row:1/3}
.fw img{flex:1;min-height:0;width:100%;height:100%;object-fit:cover;object-position:0 0}
.osv-win .bar{flex:none;height:22px;background:#202124;font-family:'Segoe UI Variable','Segoe UI',var(--b);padding:0 0 0 10px;gap:0}
.osv-win .bar em{font-style:normal;width:30px;text-align:center;font-size:10px;color:rgba(255,255,255,.7)}
.reveal{position:absolute;left:0;top:0;width:320px;height:320px;margin:-160px 0 0 -160px;border-radius:50%;pointer-events:none;background:radial-gradient(closest-side,rgba(140,210,255,.22),transparent);opacity:0;transition:opacity .4s}
.osv-win:hover .reveal{opacity:1}
.taskbar{position:absolute;left:8%;right:8%;bottom:0;height:11%;min-height:38px;display:flex;justify-content:center;align-items:center;gap:8px;border-radius:10px;background:linear-gradient(rgba(44,46,52,.95),rgba(32,33,37,.95));box-shadow:0 0 0 1px rgba(255,255,255,.12),inset 0 1px 0 rgba(255,255,255,.1),0 20px 40px -12px rgba(0,0,0,.8)}
.taskbar img,.taskbar span{width:clamp(22px,2.6vw,30px)}
.taskbar span{border-radius:6px}

/* índice lateral: solo ≥ 1280 px. Compacto (puntos) y se abre al pasar el ratón */
.os-index{display:none}
@media (min-width:1280px){
  .os-index{display:flex;flex-direction:column;gap:2px;position:fixed;left:14px;top:96px;z-index:40;padding:10px 8px;border:1px solid var(--glass-line);border-radius:16px;background:rgba(13,15,20,.7);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
  .os-index a{display:flex;align-items:center;gap:12px;padding:7px 8px;text-decoration:none;font:600 11px/1 var(--m);text-transform:uppercase;letter-spacing:.08em;color:var(--dim);border-radius:10px;white-space:nowrap}
  .os-index a i{width:8px;height:8px;border-radius:50%;background:var(--c);opacity:.5;flex:none;transition:transform .25s,opacity .25s}
  .os-index a span{max-width:0;overflow:hidden;opacity:0;transition:max-width .3s var(--ease),opacity .2s}
  .os-index:hover a span,.os-index:focus-within a span{max-width:140px;opacity:1}
  .os-index a.on{color:var(--ink)}.os-index a.on i{opacity:1;transform:scale(1.5)}
}

/* ficha de programa («muelle») */
.sw{background:rgba(7,8,11,.9);border-top:1px solid var(--rule);padding:clamp(64px,8vw,110px) 0 90px}
.sw .wrap{position:relative}
.sw-head{margin-bottom:34px;display:grid;grid-template-columns:auto 1fr;column-gap:28px;align-items:center}
.sw-head .lab{grid-column:1/-1}
.mb-h{display:flex;align-items:center;gap:.25em;margin:0 0 20px;font:800 clamp(38px,7.6vw,120px)/1 var(--u);letter-spacing:-.055em;grid-column:1/-1}
.mb-h img{width:.9em;height:.9em;max-width:96px;max-height:96px;flex:none;border-radius:22%}
.mb-h .wm{font-size:1em}
.mb-by{margin:-6px 0 22px;grid-column:1/-1}
.mb-sub{max-width:44em;margin:0;grid-column:1/-1;font-size:clamp(17px,1.6vw,22px);line-height:1.5;color:var(--ink2)}.mb-sub b{color:var(--ink)}
.getbar{display:flex;flex-wrap:wrap;gap:12px;margin:36px 0 14px}
.getbar .get{flex:1 1 260px;max-width:420px}
.hashes{margin:0 0 50px}.hashes .hash{margin:0 0 14px}
div.hashes .hash{margin-bottom:14px}
.sw .lab span,.sw .feat li::before,.sw .steps li::before{color:var(--c,var(--core))}
.fix{margin:0 0 64px;padding:clamp(18px,2.4vw,30px);border:1px solid var(--rule2);border-radius:16px;background:linear-gradient(160deg,rgba(255,45,85,.08),rgba(239,233,220,.025) 40%)}
.fix-t{margin:0 0 20px;font:800 clamp(19px,2vw,26px)/1.2 var(--u);letter-spacing:-.04em}
.fix-t span{display:block;margin-top:6px;font:400 15px/1.4 var(--b);letter-spacing:0;color:var(--dim)}
.fix-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.fix-c{display:flex;flex-direction:column;gap:12px;padding:20px;border:1px solid var(--glass-line);border-radius:12px;background:var(--glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);min-width:0}
.fix-n{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;background:var(--ink);color:#000;font:800 15px var(--u)}
.fix-c h4{margin:0;font:800 19px/1.2 var(--u);letter-spacing:-.04em}
.fix-c h4 small{font:600 11px var(--m);letter-spacing:.06em;color:var(--dim);text-transform:uppercase;margin-left:6px}
.fix-c ol{margin:0;padding-left:20px;color:var(--ink2);font-size:15px;line-height:1.55}.fix-c li{margin-bottom:8px}.fix-c b{color:var(--ink)}
.fix-c .go{align-self:flex-start;margin-top:auto}
.fix-c .cmdbox{margin-top:auto}
.fix-note{margin:0;font-size:13px;color:var(--dim)}.fix-note a{color:var(--ink)}
.tabs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:24px;border-bottom:1px solid var(--rule)}
.tabs button{font:600 12px var(--m);text-transform:uppercase;letter-spacing:.08em;color:var(--dim);background:none;border:0;border-bottom:3px solid transparent;padding:12px 14px;cursor:pointer;margin-bottom:-1px;transition:color .2s,border-color .2s}
.tabs button:hover{color:var(--ink)}.tabs button.on{color:var(--ink);border-color:var(--c)}
.shot{margin:0 0 30px;border-radius:14px;overflow:hidden;background:#000;line-height:0;border:1px solid var(--glass-line);box-shadow:0 0 0 1px color-mix(in oklab,var(--c,var(--core)) 30%,transparent),0 24px 70px -24px color-mix(in oklab,var(--c,var(--core)) 50%,transparent);transition:box-shadow .3s}
.shot img{display:block;width:100%;aspect-ratio:1400/875;object-fit:cover;transition:opacity .25s}.shot img.swap{opacity:0}
.mods-l{display:flex;flex-wrap:wrap;gap:8px 28px;margin:30px 0 64px;font:400 13px var(--m);color:var(--dim)}
.sw p.mods{display:flex;flex-wrap:wrap;gap:8px 28px;margin:30px 0 64px;font:400 13px var(--m);color:var(--dim);padding:0;height:auto}
p.mods span{padding-left:12px;border-left:3px solid var(--c)}p.mods b{color:var(--ink);margin-right:8px}
.cols{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(30px,5vw,70px)}
.sub-h{margin:0 0 18px;font:800 clamp(22px,2.2vw,30px)/1.1 var(--u);letter-spacing:-.045em}
.feat,.steps{margin:0 0 40px;padding:0;list-style:none;counter-reset:f}
.feat li,.steps li{counter-increment:f;position:relative;padding:15px 0 15px 50px;border-top:1px solid var(--rule);color:var(--ink2);font-size:15.5px;line-height:1.55}
.feat li:last-child,.steps li:last-child{border-bottom:1px solid var(--rule)}
.feat li::before,.steps li::before{content:counter(f,decimal-leading-zero);position:absolute;left:0;top:18px;font:400 11px var(--m)}
.feat b,.steps b{color:var(--ink);font-weight:600}
.steps a{color:var(--ink);text-underline-offset:3px}
.man{margin:0 0 18px;color:var(--ink2);font-size:15.5px}
.lic{margin:34px 0 0;padding:6px 0 6px 20px;border-left:2px solid var(--gold);color:var(--ink2)}
.lic h4{margin:0 0 6px;font:800 16px var(--u);letter-spacing:-.03em;color:var(--ink)}
.lic p{margin:0;font-size:14.5px;line-height:1.6}.lic a{color:var(--ink)}
/* FAQ */
#dudas details{border-top:1px solid var(--rule)}#dudas details:last-of-type{border-bottom:1px solid var(--rule)}
#dudas summary{list-style:none;cursor:pointer;padding:20px 44px 20px 0;position:relative}
#dudas summary::-webkit-details-marker{display:none}
summary h3,summary{font:600 18px/1.35 var(--b)}
#dudas summary::after{content:'';position:absolute;right:6px;top:50%;width:9px;height:9px;border-right:2px solid var(--core);border-bottom:2px solid var(--core);transform:translateY(-70%) rotate(-45deg);transition:transform .3s var(--ease)}
#dudas details[open] summary::after{transform:translateY(-30%) rotate(45deg)}
#dudas summary:hover{color:#fff}
#dudas details>p{margin:0 0 22px;color:var(--ink2);max-width:62ch}#dudas details a{text-underline-offset:3px}
.legal{width:min(72ch,100% - 40px);margin:0 auto;padding:130px 0 80px}
.legal h1{font:800 clamp(34px,6vw,72px)/1.02 var(--u);letter-spacing:-.05em;margin:0 0 30px}
.legal h2{font:800 clamp(22px,2.2vw,30px)/1.2 var(--u);letter-spacing:-.04em;margin:40px 0 8px}
.legal p{color:var(--ink2)}.legal a{text-underline-offset:3px}

/* =========================================================
   ADAPTACIÓN
   ========================================================= */
@media (max-width:1279px){
  .grid{grid-template-columns:repeat(3,1fr);grid-template-areas:"c1 c2 c2" "c3 c4 c4" "c5 c6 c8" "c7 c7 c7"}
  .top-nav a{padding:10px 9px;letter-spacing:.06em}
}
@media (max-width:1100px){
  .glw{display:none}
}
@media (max-width:1000px){
  .cols{grid-template-columns:1fr;gap:10px}
  .fix-grid{grid-template-columns:1fr}
  .os-hero{grid-template-columns:1fr;min-height:0;gap:36px;padding-bottom:56px}
  .osv-wrap{justify-self:center}
}
@media (max-width:899px){
  .top-nav{display:none}
  .menu-b{display:grid}
  .pill{margin-left:auto}
  .top{gap:10px}
  .hero{padding-top:42svh;justify-content:flex-start;padding-bottom:150px}
  .h1{font-size:clamp(34px,10vw,64px)}
  .h1 .ln{white-space:normal}
  .cta-row{flex-direction:column}.cta-row .get{width:100%}
  .kick{flex-direction:column;align-items:flex-start;gap:8px}.kick>span+span::before{display:none}
  .chips{flex-wrap:nowrap;overflow-x:auto;margin-inline:calc(-1 * var(--gut));padding:0 var(--gut) 6px;scrollbar-width:none}
  .chips::-webkit-scrollbar{display:none}
  .chip{flex:none}
  .hero-stats{gap:14px 24px;bottom:48px}
  .st{flex:none}
  .scroll-hint{display:none}
  .glass,.card,.fix-c,.rc,.eng,.con-col,.osv-wrap{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
  .con-grid{grid-template-columns:1fr}
  .con-req{border-right:0;border-bottom:1px solid var(--glass-line)}
  .con-plan{border-left:0;border-top:1px solid var(--glass-line)}
  .con-mid{order:0}.con-req{order:-1}
  .core-hole{display:none}
  .eng{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.eng::-webkit-scrollbar{display:none}
  .engine{flex:none}
  .ia-pact{grid-template-columns:1fr}
  .grid{grid-template-columns:1fr;grid-auto-rows:auto;grid-template-areas:"c1" "c2" "c3" "c4" "c5" "c6" "c7" "c8"}
  .card{min-height:180px}
  .hangares{grid-template-columns:1fr}
  .who-g{grid-template-columns:1fr}
  .links a{grid-template-columns:minmax(0,1fr) 30px;gap:6px 16px}.l-t,.l-d{grid-column:1}.l-a{grid-row:1;grid-column:2}
  .rail-stage{overflow-x:auto;scroll-padding-inline:20px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .rail-stage::-webkit-scrollbar{display:none}
  .rc{width:82vw;scroll-snap-align:start}
  .rc-th{display:none}
  .mods-head{margin-bottom:34px}
  .lead-c{text-align:left}
  .ia .h2{text-align:left}
}
@media (max-width:599px){
  body{font-size:15.5px}
  .sw-head{display:block}
  .getbar .get,.get{min-width:0;width:100%;max-width:none}
  .os-cta .go{width:100%;justify-content:center}
  .mb-h{font-size:clamp(34px,10.6vw,60px)}
  .foot-in{flex-direction:column}
  .sig-md{font-size:14px}.sig-hero{font-size:22px}
  .hg-list li{grid-template-columns:36px minmax(0,1fr)}
  .hg-list li img{width:36px;height:36px}
  .hb .get{width:100%}
  .mod-cta .btn{flex:1 1 auto}
  .kick{gap:6px 0}
}
@media (max-height:640px) and (min-width:900px){
  .hero{padding-top:78px}
}

/* ---------- sin JavaScript / sin movimiento ---------- */
html.no-js .rv{opacity:1;transform:none}
html.no-js .gpl span,html.no-js .exts div{animation:none}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;scroll-behavior:auto!important}
  *,*::before,*::after{transition-duration:.2s!important;transition-delay:0s!important}
  .stmt-t .w{opacity:1}
  .scroll-hint i::after{transform:none}
  .sig b i,.sig-dot{opacity:1!important}
  .core-css{transition:none!important}
}

/* =========================================================
   WORDMARKS: cada app con su rótulo
   ========================================================= */
.wm{display:inline-flex;align-items:baseline;white-space:nowrap;line-height:1;color:var(--c,var(--ink));font-kerning:normal;font-feature-settings:"liga","kern"}
.wm b,.wm i,.wm small{font-style:normal;font-weight:inherit}
.wm-mb b{font:800 1em var(--u);letter-spacing:-.055em;color:var(--ink)}
.wm-mb i{font:italic 500 1.2em/.8 'Bodoni Moda',var(--s);font-optical-sizing:none;font-variation-settings:'opsz' 24;letter-spacing:-.02em;color:#ff2d55;margin-left:.04em}
.wm-rar i{color:#ffb020}.wm-photo i{color:#2fd18a}.wm-video i{color:#4da3ff}
.wm-ma{font:800 1em 'Syne',sans-serif;letter-spacing:-.045em;color:#5b9bff}
.wm-ma b{align-self:center;font-size:.72em;background:#3b82f6;color:#04122b;padding:.06em .2em .14em;border-radius:.26em;margin-left:.08em;font-weight:800}
.wm-mt i{font:italic 400 1.25em/.8 var(--s);color:#c9b5ff;letter-spacing:-.01em}
.wm-mt b{align-self:center;font:800 .46em/1 var(--u);letter-spacing:.04em;color:#150b33;background:#b79cff;padding:.3em .42em .26em;border-radius:99px;margin-left:.16em}
.wm-wn{font:600 .92em var(--m);letter-spacing:-.05em;color:#22d3ee}
.wm-wn small{align-self:flex-start;font:600 .36em var(--m);letter-spacing:.2em;text-transform:uppercase;opacity:.75;margin:.25em .3em 0 0}
.wm-wn b{align-self:center;font:800 .44em/1 var(--u);letter-spacing:.02em;border:.1em solid currentColor;padding:.22em .3em .2em;border-radius:.25em;margin-left:.2em}
.wm-cae i{font:italic 800 1em 'Fraunces',serif;letter-spacing:-.035em;color:#ffb27f}
.wm-cae b{font:800 1.1em/.9 'Big Shoulders Stencil Display',sans-serif;letter-spacing:.03em;color:#ff7a2f;margin-left:.08em}
.wm-laia{font:400 1.08em 'Bodoni Moda',serif;letter-spacing:.16em;color:#f2ecdd}
.wm-laia i{color:#ff2d55;margin:0 .02em}
.wm-foto b{font:400 .9em 'Rubik Mono One',sans-serif;color:#ff4fd8;text-shadow:.035em .035em 0 #9a1a84,.07em .07em 0 #5c0f4f,.105em .105em 0 #2e0027}
.wm-foto i{font:italic 400 1.12em/.8 var(--s);color:#ffd2f5;margin-left:.22em}
.wm-space i{font:italic 800 1em 'Fraunces',serif;letter-spacing:-.03em;color:#8aa0ff}
.wm-space b{align-self:center;font:600 .34em var(--m);letter-spacing:.55em;text-transform:uppercase;color:#d4dcff;margin-left:.35em}
.wm-space::after{content:'✦';align-self:flex-start;font-size:.38em;color:#ffd36f;margin-left:-.1em}
.wm-cl{font:600 .92em var(--m);letter-spacing:-.06em;color:#c4ff3d}
.wm-cl b{font:800 .9em var(--u);letter-spacing:-.04em;color:#142200;background:linear-gradient(transparent 10%,#c4ff3d 10% 90%,transparent 90%);padding:0 .14em;margin-left:.05em;transform:skewX(-8deg)}
.wm-radar::before{content:'';align-self:center;flex:none;width:.5em;height:.5em;margin-right:.18em;border-radius:50%;background:radial-gradient(circle,#ffc247 0 18%,transparent 20% 42%,rgba(255,194,71,.7) 44% 50%,transparent 52% 72%,rgba(255,194,71,.4) 74% 80%,transparent 82%)}
.wm-radar b{font:800 1em var(--u);letter-spacing:-.055em;color:#ffc247}
.wm-radar i{font:italic 400 .7em var(--s);color:#ffe3a6;margin-left:.25em}
.wm-mg i{font:italic 700 1.06em 'Bodoni Moda',serif;letter-spacing:-.025em;color:#ff5c7a}
.wm-mg b{align-self:center;font:600 .3em var(--m);letter-spacing:.5em;text-transform:uppercase;color:#ffc2cd;border-block:1px solid currentColor;padding:.45em 0 .4em .5em;margin-left:.35em}
.wm-rm i{font:400 1.3em/.8 'Pinyon Script',cursive;color:#e6d3b6}
.wm-rm b{font:italic 400 .86em var(--s);color:#f6ead6;margin-left:.08em}
