/* Capa visual de Rubik Labs: efectos progresivos, sin dependencias externas. */
:root{--shadow:0 12px 42px #102b5310;--line:#dce5f2}
html[data-theme=dark]{--bg:#0c172a;--surface:#111e34;--line:#273b58;--shadow:0 14px 45px #0004}
body{font-feature-settings:"ss01" on;text-rendering:optimizeLegibility}
.rubik-header{background:#1842b6ed;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 1px 0 #ffffff15;transition:box-shadow .25s,background .25s}
.rubik-header.is-scrolled{background:#15389cef;box-shadow:0 8px 28px #07152b30}
.rubik-brand img{box-shadow:0 4px 15px #031a5720}
.rubik-nav nav a{position:relative}.rubik-nav nav a:after{content:"";position:absolute;bottom:8px;left:0;width:100%;height:2px;background:#75f1bb;transform:scaleX(0);transform-origin:left;transition:transform .25s}.rubik-nav nav a:hover:after{transform:scaleX(1)}
.scroll-progress{position:fixed;top:0;left:0;width:100%;height:3px;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,#65efb4,#73b4ff);z-index:50;pointer-events:none}
.rubik-hero{min-height:690px;background:#07172e}.hero-photo{animation:hero-drift 26s ease-in-out infinite alternate;object-position:center}
.rubik-hero:after{background:linear-gradient(90deg,#061329ad,#06132995 50%,#06132946),linear-gradient(0deg,#07172eb3,transparent 55%)}
.hero-content{position:relative;z-index:1;padding-block:100px}.hero-content h1{letter-spacing:-.055em;text-shadow:0 4px 35px #0005}.hero-content h1 span{background:linear-gradient(110deg,#a1ffdc,#51dba5 48%,#96c7ff);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.hero-content .eyebrow{display:inline-flex;align-items:center;gap:10px;border:1px solid #7ae6bd40;background:#091d3680;backdrop-filter:blur(12px);padding:9px 18px;border-radius:50px;font-size:.74rem;letter-spacing:.13em}.hero-content .eyebrow:before{content:"";width:6px;height:6px;border-radius:50%;background:#83f5c7;box-shadow:0 0 12px #65ecb9}
.hero-description{color:#e1eaf9;max-width:620px}.hero-platforms{color:#cfdef3}.hero-ambient{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0}.hero-ambient:before,.hero-ambient:after{content:"";position:absolute;border-radius:50%;filter:blur(70px);opacity:.2;animation:ambient-drift 15s ease-in-out infinite alternate}.hero-ambient:before{width:300px;height:300px;left:-130px;top:10%;background:#307bff}.hero-ambient:after{width:240px;height:240px;right:-120px;bottom:5%;background:#33e4ac;animation-delay:-7s}
.rubik-button,.nav-cta{position:relative;overflow:hidden;isolation:isolate;box-shadow:0 6px 20px #071c3b15;transition:transform .22s,box-shadow .22s,background .22s}.rubik-button:after,.nav-cta:after{content:"";position:absolute;inset:-100% auto -100% -55%;width:35%;background:linear-gradient(90deg,transparent,#ffffff35,transparent);transform:rotate(22deg);transition:left .65s;pointer-events:none}.rubik-button:hover:after,.nav-cta:hover:after{left:140%}.rubik-button:hover{transform:translateY(-3px);box-shadow:0 12px 28px #071c3b25}.button-green{box-shadow:0 8px 28px #26d48c25}.button-outline{background:#061b2930;backdrop-filter:blur(8px)}
.rubik-strip{background:linear-gradient(105deg,#20c883,#50dfac);position:relative}.strip-grid strong{font-weight:800}.strip-grid span{color:#143b32}
.section-space{padding-block:104px}.section-tinted{background:radial-gradient(ellipse at 100% 0%,#4384f908,transparent 60%),var(--surface)}.section-heading h2,.cases-heading h2{font-weight:800;letter-spacing:-.055em}.section-kicker{letter-spacing:.18em}
.about-images>img{border-radius:20px;box-shadow:0 16px 40px #061d3330}.about-images>img:nth-child(2){border-radius:22px}.about-label{border:1px solid #ffffff30;background:linear-gradient(130deg,#123491,#2153c7);backdrop-filter:blur(12px);box-shadow:0 12px 28px #06215230;border-radius:14px}
.service-card{position:relative;overflow:hidden;border-radius:18px;background:linear-gradient(155deg,var(--bg),var(--surface));box-shadow:var(--shadow);transition:transform .25s,box-shadow .25s,background .25s,border-color .25s;transform-style:preserve-3d}
.service-card:before{content:"";position:absolute;top:0;left:20%;right:20%;height:1px;background:linear-gradient(90deg,transparent,#7ba5f990,transparent)}
.service-card:hover{background:linear-gradient(140deg,#1b4dc5,#133393);box-shadow:0 20px 45px #1842b628}.service-icon{background:linear-gradient(135deg,#e4ecff,#f5f8ff);box-shadow:inset 0 1px 0 #fff,0 4px 15px #1842b609;border-radius:18px;font-size:1.15rem}
.case-card{border-radius:18px;transition:transform .3s,box-shadow .3s,border-color .3s}.case-card:hover{transform:translateY(-6px);box-shadow:0 20px 45px #12377420;border-color:#688fe785}.case-cover{background:radial-gradient(circle at 50% 50%,#276af012,transparent 70%),var(--surface)}.case-cover img{transition:transform .65s cubic-bezier(.2,.7,.3,1)}.case-card:hover .case-cover img{transform:scale(1.045)}.case-category{font-size:.72rem;line-height:1.65}.case-copy{padding:28px}
.process-grid article{position:relative;border-top:1px solid var(--line);padding-top:32px}.process-grid article:before{content:"";width:8px;height:8px;position:absolute;top:-4px;left:0;border-radius:50%;background:var(--green-ink);box-shadow:0 0 0 6px var(--surface)}
.contact-section{position:relative;overflow:hidden;background:radial-gradient(ellipse at 100% 100%,#26d48c28,transparent 60%),linear-gradient(115deg,#102a77,#1842b6)}.contact-section:before{content:"";position:absolute;right:-100px;top:-100px;width:420px;height:420px;border:1px solid #ffffff12;box-shadow:0 0 0 70px #ffffff04,0 0 0 140px #ffffff03;border-radius:50%;pointer-events:none}.contact-layout{position:relative;z-index:1}.contact-actions .rubik-button{min-height:58px}.contact-section h2{letter-spacing:-.055em;font-weight:800}.rubik-footer{background:linear-gradient(145deg,#101c31,#0b1528)}
.motion-ready [data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.3,1);transition-delay:var(--reveal-delay,0ms)}.motion-ready [data-reveal].is-visible{opacity:1;transform:translateY(0)}
@keyframes hero-drift{from{transform:scale(1)}to{transform:scale(1.055)}}@keyframes ambient-drift{from{transform:translateY(-20px)}to{transform:translateY(25px)}}
@media(max-width:991px){.rubik-hero{min-height:620px}.hero-content{padding-block:82px}.section-space{padding-block:76px}}
@media(max-width:575px){.rubik-hero{min-height:620px}.hero-photo{object-position:70% center;animation:none}.rubik-hero:after{background:linear-gradient(90deg,#061329d9,#061329b5),linear-gradient(0deg,#07172e99,transparent)}.hero-content{padding-block:64px}.hero-content .eyebrow{font-size:.62rem;padding:9px 12px;letter-spacing:.08em}.section-space{padding-block:62px}.hero-ambient:before,.hero-ambient:after{filter:blur(45px);animation:none}.service-card,.case-card{border-radius:16px}.rubik-nav nav a:after{display:none}.case-copy{padding:25px}.contact-section:before{width:260px;height:260px}.motion-ready [data-reveal]{transform:translateY(14px)}}
@media(prefers-reduced-motion:reduce){.hero-photo,.hero-ambient:before,.hero-ambient:after{animation:none}.motion-ready [data-reveal]{opacity:1;transform:none;transition:none}.rubik-button:hover,.case-card:hover{transform:none}.case-card:hover .case-cover img{transform:none}}

@media(max-width:575px){.hero-photo{object-position:100% center}}
/* Mantener proporción cuadrada aunque el HTML declare el tamaño del archivo. */
.about-images>img{height:auto;aspect-ratio:1;object-fit:cover}
