@font-face{font-family:Sora;src:url(/fonts/Sora-Variable.woff2)format("woff2-variations"),url(/fonts/Sora-Variable.woff2)format("woff2");font-weight:100 800;font-display:swap}:root{--brand:#55a3d8;--brand-deep:#0075be;--brand-ink:#04507f;--cyan:#5fd0d6;--cyan-soft:#7fe6f2;--ink:#243340;--ink-2:#4a5862;--ink-3:#56636c;--night:#0b1b26;--line:#a9d3ee;--line-soft:#e3f1fa;--line-neutral:#c6cdd3;--bg-1:#f5f7f9;--bg-mid:#eceff2;--bg-2:#d8dde2;--white:#fff;--surface-tint:#f3f8fc;--surface-on:color-mix(in srgb, var(--brand) 14%, var(--white));--danger:#c42f2a;--danger-ink:#8d2420;--device:#3c4144;--focus:#0075be;--r-leaf:6px 24px 6px 6px;--r-leaf-sm:4px 14px 4px 4px;--r-win:min(5.2vw, 76px);--font:"Sora", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--fs-xs:12px;--fs-sm:14px;--fs-md:16px;--fs-lg:clamp(17px, 1.4vw, 20px);--fs-xl:clamp(21px, 2vw, 28px);--fs-2xl:clamp(28px, 2.8vw, 40px);--fs-display:clamp(34px, 4.6vw, 76px);--edge-x:clamp(16px, 4.4vw, 84px);--edge-y:clamp(16px, 4.4vh, 48px);--nav-icon:clamp(40px, 3.2vw, 60px);--ease-soft:cubic-bezier(.18, 1, .32, 1)}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:var(--font);color:var(--ink);background:linear-gradient(115deg, var(--bg-1) 0%, var(--bg-mid) 45%, var(--bg-2) 100%);-webkit-font-smoothing:antialiased;overflow:hidden}body.modal-open{overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}img{max-width:100%;display:block}.sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:8px}[hidden]{display:none!important}.intro{z-index:50;background:var(--white);place-items:center;transition:opacity .6s;display:grid;position:fixed;inset:0}.intro.out{opacity:0;pointer-events:none}.intro:before{content:"";background:radial-gradient(ellipse at 50% 50%, transparent 20%, var(--bg-mid) 100%);position:absolute;inset:0}@property --a{syntax:"<angle>";inherits:false;initial-value:0deg}.intro-1{aspect-ratio:1;place-items:center;width:min(44vw,460px);transition:opacity .6s,transform .8s;display:grid;position:relative}.intro-1 .ring{object-fit:contain;width:100%;height:100%;-webkit-mask:conic-gradient(from 200deg, #000 var(--a), transparent calc(var(--a) + 1deg));-webkit-mask:conic-gradient(from 200deg, #000 var(--a), transparent calc(var(--a) + 1deg));mask:conic-gradient(from 200deg, #000 var(--a), transparent calc(var(--a) + 1deg));animation:1.5s cubic-bezier(.4,.1,.2,1) both sweep;position:absolute;inset:0}.intro:not(.ready) .ring{animation-play-state:paused}.intro-2{font-weight:200;font-size:var(--fs-xl);letter-spacing:.14em;color:var(--ink-2);opacity:0;margin:0;transition:opacity .8s;position:absolute}.intro.step2 .intro-1{opacity:0;transform:scale(1.15)}.intro.step2 .intro-2{opacity:1}@keyframes sweep{0%{--a:0deg}to{--a:360deg}}.app{background:radial-gradient(1200px 260px at 60% 20%, color-mix(in srgb, var(--white) 90%, transparent), transparent 70%), radial-gradient(900px 200px at 30% 70%, color-mix(in srgb, var(--white) 55%, transparent), transparent 70%);position:fixed;inset:0}.lights{pointer-events:none;position:absolute;inset:0}.app:after{content:"";pointer-events:none;background:radial-gradient(circle at 20% 60%, color-mix(in srgb, var(--cyan-soft) 18%, transparent), transparent 12%), radial-gradient(circle at 75% 35%, color-mix(in srgb, var(--white) 70%, transparent), transparent 8%);position:absolute;inset:0}.top{pointer-events:none;position:absolute;inset:0 0 auto}.logo{left:var(--edge-x);top:var(--edge-y);pointer-events:auto;width:clamp(96px,8.5vw,150px);position:absolute}.corner{z-index:3;text-align:center;font-size:var(--fs-sm);color:var(--ink);-webkit-tap-highlight-color:transparent;transition:translate .4s var(--ease-soft), filter .4s var(--ease-soft);place-items:center;display:grid;position:absolute}.pages-btn{top:var(--edge-y);right:var(--edge-x);pointer-events:auto;background:url(/assets/img/btn-paginas.svg) 50%/100% 100% no-repeat;width:clamp(104px,10.4vw,190px);height:clamp(44px,6.6vh,68px)}.contact-btn{z-index:5;transition:transform .35s cubic-bezier(.3, .7, .2, 1), translate .4s var(--ease-soft), filter .4s var(--ease-soft);right:var(--edge-x);bottom:var(--edge-y);background:url(/assets/img/btn-contacto.svg) 50%/100% 100% no-repeat;align-content:center;gap:4px;width:clamp(96px,8.2vw,156px);height:clamp(60px,9.4vh,100px);position:fixed}.contact-btn img{width:clamp(26px,2.6vw,46px)}.sound-btn{left:var(--edge-x);bottom:var(--edge-y);background:url(/assets/img/btn-sonido.svg) 50%/100% 100% no-repeat;width:clamp(72px,6.6vw,124px);height:clamp(56px,9.8vh,104px)}.sound-btn img{opacity:.75;width:clamp(30px,2.9vw,52px);transition:opacity .4s var(--ease-soft)}.sound-btn[aria-pressed=true] img{opacity:1;animation:2.6s ease-in-out infinite sound-pulse}@keyframes sound-pulse{50%{scale:1.08}}.corner:hover:not(:disabled){filter:brightness(1.03) drop-shadow(0 6px 14px color-mix(in srgb, var(--brand) 25%, transparent));translate:0 -3px}.svc-nav{left:var(--edge-x);z-index:2;flex-direction:column;gap:clamp(14px,4.6vh,48px);display:flex;position:absolute;top:clamp(140px,24vh,260px)}.nav-line{background:var(--brand);width:1.5px;height:clamp(24px,4vh,44px);margin-left:calc(var(--nav-icon) / 2);opacity:.8}.svc-item{text-align:left;min-height:48px;font-size:var(--fs-sm);color:var(--ink-3);align-items:center;gap:clamp(12px,1.9vw,36px);display:flex}.svc-item img{width:var(--nav-icon);object-fit:contain;opacity:.72;filter:grayscale();height:clamp(40px,5.4vh,58px)}.svc-item.active{font-size:var(--fs-md);color:var(--ink)}.svc-item.active img{opacity:1;filter:none;transform:scale(1.12)}.stage{z-index:1;place-items:center;width:min(48vw,720px);height:min(62vh,640px);display:grid;position:absolute;top:48%;left:50%;transform:translate(-50%,-50%)}.scene{place-items:center;display:grid;position:absolute;inset:0}.scene[data-scene=mvp] canvas{aspect-ratio:1;pointer-events:none;width:min(56vh,680px);filter:drop-shadow(0 0 30px color-mix(in srgb, var(--cyan-soft) 35%, transparent))}.scene[data-scene=mvp] .core{opacity:.7;pointer-events:none;width:min(78vh,900px);position:absolute}.laptop{width:min(100%,112.2vh);filter:drop-shadow(0 0 40px color-mix(in srgb, var(--cyan-soft) 35%, transparent));position:relative}.laptop canvas{touch-action:none;cursor:crosshair;width:85%;height:85%;position:absolute;top:3.4%;left:8.2%}.draw-hint{text-align:center;color:var(--ink-3);letter-spacing:.04em;pointer-events:none;font-weight:200;font-size:var(--fs-sm);position:absolute;top:-12%;left:0;right:0}.web-links{gap:clamp(10px,4vw,90px);display:flex;position:absolute;bottom:-9%}.web-links button{width:clamp(84px,6.6vw,130px);min-height:48px;filter:drop-shadow(0 6px 14px color-mix(in srgb, var(--brand) 25%, transparent));transition:transform .4s var(--ease-soft)}.web-links button:hover{transform:translateY(-4px)}@media (width>=1025px){.scene[data-scene=web]{flex-direction:column;justify-content:center;align-items:center;gap:clamp(16px,4vh,44px);display:flex;translate:0 7vh}.laptop{width:min(100%,80vh)}.web-links{gap:clamp(24px,8vw,140px);position:static}}.phone{aspect-ratio:295.72/568.51;height:min(52vh,560px);filter:drop-shadow(0 0 36px color-mix(in srgb, var(--cyan-soft) 45%, transparent));position:relative}.phone>img,.phone .waves{width:100%;height:100%;position:absolute;inset:0}.phone .waves{clip-path:inset(0 round 8.9%/4.6%);pointer-events:none;width:auto;height:auto;inset:1.42% 2.3% calc(1.42% - 1px) 2.98%}.phone .waves canvas{display:block}.scene[data-scene=apps] .shadow{opacity:.8;width:36%;position:absolute;bottom:2%}.soon{letter-spacing:.12em;color:var(--ink-3);font-weight:200;font-size:var(--fs-lg)}.caption{font-size:var(--fs-md);color:var(--ink-2);text-align:center;pointer-events:none;width:min(60vw,640px);margin:0;position:absolute;bottom:clamp(40px,8.4vh,96px);left:50%;transform:translate(-50%)}body:has(.scene[data-scene=mvp]:not([hidden])) .caption{pointer-events:auto;cursor:pointer}.overlay{z-index:30;background:color-mix(in srgb, var(--ink) 38%, transparent);opacity:0;place-items:center;transition:opacity .22s;display:grid;position:fixed;inset:0}.overlay.show{opacity:1}.dialog{outline:0;max-height:100dvh;transition:transform .22s;position:relative;transform:translateY(14px)scale(.985)}.overlay.show .dialog{transform:none}.dlg-service{width:min(94vw,1180px);height:min(92dvh,1000px)}.win{background:var(--white);border-radius:6px var(--r-win) 6px 6px;height:100%;box-shadow:0 0 0 1px var(--line-soft), 0 0 60px color-mix(in srgb, var(--brand) 35%, transparent), 0 30px 80px color-mix(in srgb, var(--night) 18%, transparent);grid-template-columns:clamp(84px,12vw,170px) 1fr;display:grid;overflow:hidden}.side{border-right:1px solid var(--line);background:linear-gradient(var(--white), var(--surface-tint));flex-direction:column;align-items:center;gap:18px;padding:clamp(18px,3vh,36px) 8px;display:flex}.side-logo{width:min(100%,128px)}.lang select{appearance:none;background:var(--white);border:1px solid var(--line-neutral);border-radius:var(--r-leaf-sm);font:inherit;font-size:var(--fs-sm);color:var(--ink-2);cursor:pointer;background-image:linear-gradient(45deg, transparent 50%, var(--ink-3) 50%), linear-gradient(135deg, var(--ink-3) 50%, transparent 50%);background-position:calc(100% - 12px) 55%,calc(100% - 8px) 55%;background-repeat:no-repeat;background-size:4px 4px;padding:6px 24px 6px 10px}.side-nav{flex-direction:column;align-items:center;gap:14px;width:100%;margin-top:clamp(16px,6vh,60px);display:flex}.side-nav button{opacity:.55;border-radius:0 28px;place-items:center;gap:2px;width:100%;min-height:52px;padding:8px 4px;transition:opacity .2s,background .2s;display:grid}.side-nav button img{object-fit:contain;width:36px;height:36px}.side-nav button small{font-size:var(--fs-xs);color:var(--ink-2);text-align:center}.side-nav button:hover{opacity:.9}.side-nav button.on{opacity:1;background:linear-gradient(var(--white), var(--surface-tint));box-shadow:0 0 0 1px var(--line-soft), 0 6px 18px color-mix(in srgb, var(--brand) 18%, transparent)}.win-main{scroll-behavior:smooth;overscroll-behavior:contain;padding:clamp(28px,5vh,60px) clamp(24px,5.5vw,96px) 120px;position:relative;overflow:auto}.win-main h1{font-size:var(--fs-2xl);color:var(--ink);margin:0 0 clamp(16px,3vh,34px);padding-right:56px;font-weight:700}.x-btn{z-index:2;opacity:.7;place-items:center;width:44px;height:44px;transition:opacity .2s;display:grid;position:absolute;top:clamp(14px,2.6vh,28px);right:clamp(14px,2.4vw,34px)}.x-btn:hover{opacity:1}.x-btn img{width:30px}.win-main>.x-btn{float:right;margin:-6px -8px 0 0;position:sticky;top:0}.intro-row{grid-template-columns:1fr minmax(0,38%);align-items:center;gap:24px;min-height:clamp(150px,26vh,280px);margin-bottom:clamp(40px,8vh,96px);display:grid}.intro-txt{gap:clamp(20px,5vh,64px);display:grid}.lead{font-size:var(--fs-lg);max-width:34ch;margin:0;font-weight:500;line-height:1.45}.lead2{font-size:var(--fs-md);color:var(--ink-2);max-width:36ch;margin:0;line-height:1.65}.illus{aspect-ratio:1.2;width:100%}.mvp-ring{opacity:.9;pointer-events:none;width:min(38%,360px);position:absolute;top:2%;right:6%}.blk{padding:clamp(32px,6vh,72px) 0 clamp(40px,8vh,96px)}.blk h2{font-size:var(--fs-xl);color:var(--ink);align-items:center;gap:14px;margin:0 0 clamp(24px,4.4vh,44px);font-weight:600;display:flex;position:relative}.blk h2 img{width:28px}.blk h2:after{content:"";background:radial-gradient(ellipse at 50% 0, color-mix(in srgb, var(--night) 8%, transparent), transparent 70%);width:min(300px,50%);height:6px;position:absolute;bottom:-10px;left:40px}.cols{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:0 clamp(32px,5vw,88px);display:grid}.desc{color:var(--ink-2);font-size:var(--fs-md);text-align:left;max-width:52ch;line-height:1.7}.desc p{margin:0 0 1.2em}.cols ul{border-left:1px solid var(--line);align-content:start;gap:clamp(16px,2.8vh,28px);margin:0;padding:0 0 0 clamp(18px,2.2vw,30px);list-style:none;display:grid}.cols li{font-size:var(--fs-lg);color:var(--ink);transition:color .4s var(--ease-soft), translate .4s var(--ease-soft);font-weight:500;line-height:1.3}.cols li:hover{color:var(--brand-deep);translate:6px}.step{position:relative}.step-tag{background:var(--surface-on);border-radius:var(--r-leaf-sm);font-size:var(--fs-sm);color:var(--brand-ink);margin-bottom:12px;padding:4px 12px;font-weight:600;display:inline-block}:root{--pages-w:clamp(300px, 23vw, 440px)}.overlay:has(.dlg-pages){place-items:stretch end}.dlg-pages{width:min(100vw, var(--pages-w));height:100dvh;transform:translate(30px)}.overlay.show .dlg-pages{transform:none}.pages-box{background:var(--white);height:100%;box-shadow:0 0 60px color-mix(in srgb, var(--brand) 40%, transparent);border-radius:44px 0 0;padding:clamp(22px,4vh,40px) 22px;overflow:auto}.pg-head{justify-content:space-between;align-items:center;margin-bottom:22px;padding:0 6px;display:flex}.pg-head h2{font-size:var(--fs-lg);margin:0;font-weight:600}.pg-head .x-btn{margin:0;position:static}.pages-list,.pg-sub{margin:0;padding:0;list-style:none}.pages-list{gap:10px;display:grid}.pg-legal{border-top:1px solid var(--line-neutral);flex-wrap:wrap;gap:0 18px;margin-top:28px;padding:14px 6px 0;display:flex}.pg-legal button{min-height:36px;color:var(--ink-3);font-size:var(--fs-xs)}.pg-legal button:hover{color:var(--brand-deep);text-decoration:underline}.pg-row{border:1px solid var(--line-neutral);border-radius:999px;min-height:44px;display:flex;overflow:hidden}.pg-main{text-align:left;font-size:var(--fs-sm);flex:1;padding:0 18px}.pg-plus{width:46px;font-size:var(--fs-lg);color:var(--ink-2);place-items:center;display:grid}.pg-row:hover,.pg-row:focus-within{border-color:var(--brand)}.pg-sub{border-left:1px solid var(--line);margin:8px 0 6px 18px;padding-left:10px}.pg-sub button{text-align:left;width:100%;min-height:40px;font-size:var(--fs-sm);color:var(--ink-2);border-radius:8px;padding:4px 12px}.pg-sub button:hover{background:var(--surface-tint);color:var(--ink)}.dlg-project,.dlg-legal{width:min(94vw,860px);height:min(94dvh,1000px)}.proj{background:var(--white);text-align:center;height:100%;box-shadow:0 0 0 1px var(--line-soft), 0 0 60px color-mix(in srgb, var(--brand) 35%, transparent), 0 30px 80px color-mix(in srgb, var(--night) 18%, transparent);border-radius:6px 64px 6px 6px;padding:clamp(28px,5vh,56px) clamp(24px,6vw,104px) 112px;position:relative;overflow:auto}.proj>.x-btn{float:right;margin:0;position:sticky;top:0;right:0}.proj-logo{width:96px;position:absolute;top:clamp(28px,5vh,56px);left:clamp(24px,6vw,104px)}.proj h1{clear:both;font-size:var(--fs-2xl);margin:6px 0 20px}.proj-icon{border-radius:22%;width:clamp(120px,16vw,170px);margin:0 auto 26px}.proj-lead{max-width:52ch;font-weight:600;font-size:var(--fs-lg);margin:0 auto 16px;line-height:1.5}.proj-sub{max-width:62ch;color:var(--ink-2);font-size:var(--fs-md);margin:0 auto 14px;line-height:1.6}.legal-tabs{border-bottom:1px solid var(--line-neutral);flex-wrap:wrap;justify-content:center;gap:4px;margin:0 auto clamp(24px,4vh,40px);display:flex}.legal-tabs [role=tab]{min-height:44px;color:var(--ink-2);font-size:var(--fs-sm);transition:color .3s var(--ease-soft), border-color .3s var(--ease-soft);border-bottom:2px solid #0000;margin-bottom:-1px;padding:0 18px}.legal-tabs [role=tab]:hover{color:var(--brand-deep)}.legal-tabs [aria-selected=true]{border-bottom-color:var(--brand-deep);color:var(--brand-deep);font-weight:600}.legal-doc{text-align:left;max-width:68ch;color:var(--ink-2);font-size:var(--fs-md);margin:0 auto;line-height:1.65}.legal-doc h2{color:var(--ink);font-size:var(--fs-xl);margin:0 0 4px;font-weight:500}.legal-date{color:var(--ink-3);font-size:var(--fs-xs)}.legal-doc h3{color:var(--ink);font-size:var(--fs-lg);margin:28px 0 8px;font-weight:600}.legal-doc p,.legal-doc ul{margin:0 0 12px}.legal-doc ul{padding-left:1.2em}.legal-doc li{margin-bottom:6px}.legal-doc a{color:var(--brand-deep);overflow-wrap:anywhere}.legal-holder{border-radius:var(--r-leaf);background:var(--surface-tint);grid-template-columns:max-content 1fr;gap:6px 20px;margin:0 0 8px;padding:16px 20px;display:grid}.legal-holder dt{color:var(--ink);font-weight:600}.legal-holder dd{margin:0}@media (width<=640px){.legal-holder{grid-template-columns:1fr;gap:2px}.legal-holder dd{margin-bottom:8px}}@media (prefers-reduced-motion:reduce){.legal-tabs [role=tab]{transition:none}}.proj-link{color:var(--brand);font-weight:600}.proj-h{font-size:var(--fs-xl);justify-content:center;align-items:center;gap:12px;margin:clamp(48px,9vh,104px) 0 clamp(20px,3.6vh,36px);display:flex}.proj-h img{width:24px}.proj-video{aspect-ratio:16/9;border-radius:var(--r-leaf);background:var(--night);max-width:720px;box-shadow:0 18px 40px color-mix(in srgb, var(--night) 18%, transparent);margin:0 auto;overflow:hidden}.proj-video>*,.proj-video img{border:0;width:100%;height:100%;display:block}.yt{position:relative}.yt img{object-fit:cover;transition:scale .6s var(--ease-soft)}.yt-play{background:color-mix(in srgb, var(--white) 85%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);width:76px;height:76px;box-shadow:0 8px 26px color-mix(in srgb, var(--night) 30%, transparent);transition:scale .4s var(--ease-soft);border-radius:50%;position:absolute;top:50%;left:50%;translate:-50% -50%}.yt-play:after{content:"";border-style:solid;border-width:13px 0 13px 22px;border-color:transparent transparent transparent var(--brand-deep);position:absolute;top:50%;left:54%;translate:-50% -50%}.yt:hover img,.yt:focus-visible img{scale:1.03}.yt:hover .yt-play,.yt:focus-visible .yt-play{scale:1.08}.shots{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:28px;display:flex}.shots img{border-radius:6px;width:min(20%,120px);min-width:84px}.dl{flex-wrap:wrap;justify-content:space-around;gap:20px;display:flex}.dl>div{justify-items:center;gap:14px;display:grid}.qr{border:2px dashed var(--line-neutral);width:150px;height:150px;font-size:var(--fs-lg);color:var(--ink-3);place-items:center;font-weight:700;display:grid}.dl img{width:auto;height:44px}.plist{gap:10px;max-width:420px;margin:0;padding:0;list-style:none;display:grid}.plist button{text-align:left;border:1px solid var(--line-neutral);width:100%;min-height:48px;font-size:var(--fs-md);transition:border-color .4s var(--ease-soft), color .4s var(--ease-soft);border-radius:999px;padding:0 20px}.plist button:hover,.plist button:focus-visible{border-color:var(--brand);color:var(--brand-deep)}.illus{object-fit:contain;aspect-ratio:auto}.overlay:has(.dlg-contact){place-items:end}.dlg-contact{width:min(960px,100vw);max-height:calc(100dvh - 100px);margin:0 0 0 auto}.cform{background:var(--white);box-shadow:0 0 60px color-mix(in srgb, var(--brand) 45%, transparent);border-radius:48px 0 0;max-height:calc(100dvh - 100px);padding:clamp(20px,4vh,44px) clamp(18px,3vw,44px) 20px;position:relative;overflow:auto}.cf-head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:clamp(14px,3vh,34px);display:flex}.cf-head h2{font-size:var(--fs-xl);margin:0;font-weight:600}.cf-head .x-btn{flex-shrink:0;margin:0;position:static}.cf-err{border:1px solid var(--danger);background:color-mix(in srgb, var(--danger) 6%, var(--white));font-size:var(--fs-sm);color:var(--danger-ink);border-left-width:5px;border-radius:8px;margin-bottom:14px;padding:10px 14px}.cf-err ul{margin:6px 0 0;padding-left:20px}.step-f{--cf-q:clamp(150px, 15vw, 220px);border:0;margin:0 0 clamp(14px,3vh,28px);padding:0}.step-f legend{float:left;width:var(--cf-q);font-size:var(--fs-md);gap:8px;padding:0 16px 0 0;font-weight:600;line-height:1.3;display:flex}.step-f legend img{object-fit:contain;flex:none;width:22px;height:30px}.step-f legend+*{margin-left:var(--cf-q)}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip input{opacity:0;pointer-events:none;position:absolute}.chip span{border:1px solid var(--line-neutral);border-radius:var(--r-leaf-sm);min-height:36px;font-size:var(--fs-sm);color:var(--ink-2);cursor:pointer;padding:8px 14px;transition:background .2s,border-color .2s;display:inline-block}.chip span:hover{border-color:var(--brand)}.chip input:checked+span{background:var(--surface-on);border-color:var(--brand-deep);color:var(--brand-ink);box-shadow:inset 0 0 0 1px var(--brand-deep);font-weight:600}.chip input:focus-visible+span{outline:3px solid var(--focus);outline-offset:2px}.chips.bad,.bad{outline:2px solid var(--danger);outline-offset:4px;border-radius:12px}.fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.fld{border:1px solid var(--line-neutral);font-size:var(--fs-xs);color:var(--ink-2);background:var(--white);border-radius:18px;gap:2px;padding:8px 14px;display:grid}.fld.wide{grid-column:1/-1}.fld input,.fld textarea,.fld select{font:inherit;font-size:var(--fs-sm);color:var(--ink);resize:vertical;background:0 0;border:0;outline:0;width:100%;min-height:28px}@media (pointer:coarse){.fld input,.fld textarea,.fld select{font-size:var(--fs-md)}}.fld:focus-within{border-color:var(--brand-deep);box-shadow:0 0 0 2px color-mix(in srgb, var(--brand-deep) 25%, transparent)}.fld.sel{border-radius:999px;grid-column:span 1;padding:4px 10px;display:block}.fields .sel:nth-last-child(2){grid-column:1/3}.fields .sel:last-child{grid-column:3/4}.hp{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.cf-legal{color:var(--ink-3);font-size:var(--fs-xs);margin:0 0 12px;line-height:1.5}.cf-legal strong{color:var(--ink-2);font-weight:600}.cf-legal a{color:var(--brand-deep);font-weight:600}.cf-foot{border-top:1px solid var(--line-neutral);font-size:var(--fs-sm);grid-template-columns:1fr auto;align-items:center;gap:10px 18px;margin-top:6px;padding-top:18px;display:grid}.cf-foot p{margin:0}.cf-foot a{color:var(--ink);font-weight:700}.cf-status{min-height:1.2em;color:var(--ink-2);font-size:var(--fs-sm);grid-area:2/1/auto/-1}.send{border-radius:var(--r-leaf);background:var(--brand-deep);min-height:48px;color:var(--white);box-shadow:0 8px 20px color-mix(in srgb, var(--brand-deep) 30%, transparent);transition:background .3s var(--ease-soft);grid-area:1/2;align-items:center;gap:10px;padding:0 22px;font-weight:600;display:flex}.send:hover:not(:disabled){background:var(--brand-ink)}.send img{filter:brightness(0)invert();width:20px}.send:disabled{opacity:.6;cursor:progress}@media (width<=1024px){.svc-nav{flex-direction:row;align-items:flex-start;gap:6px;top:clamp(96px,15vh,130px);left:50%;transform:translate(-50%)}.nav-line{display:none}.svc-item{text-align:center;width:clamp(64px,19vw,110px);font-size:var(--fs-xs);flex-direction:column;gap:4px}.svc-item.active{font-size:var(--fs-xs)}.svc-item img{width:40px;height:40px}.stage{width:92vw;height:46vh;top:50%}.scene[data-scene=mvp] canvas{width:min(46vh,80vw)}.laptop{width:min(80%,71.06vh)}.caption{width:84vw;bottom:22%}body:has(.scene[data-scene=mvp]:not([hidden])) .caption{bottom:calc(22% - 10vh)}.sound-btn{width:72px;height:60px;bottom:10px}.sound-btn img{width:26px}.contact-btn{bottom:8px;right:10px}.intro-row{grid-template-columns:1fr;min-height:0}.illus,.mvp-ring{display:none}.cols{grid-template-columns:1fr;gap:20px}.fields{grid-template-columns:1fr 1fr}.fields .sel:nth-last-child(2){grid-column:1/2}.fields .sel:last-child{grid-column:2/3}}@media (width>=641px) and (width<=1024px){.web-links{bottom:calc(-9% - 10vh)}body:has(.scene[data-scene=web]:not([hidden])) .caption{bottom:calc(13vh - 40px)}body:has(.scene[data-scene=apps]:not([hidden])) .caption{bottom:calc(22% - 10vh)}}@media (width<=640px){:is(.overlay:has(.dlg-project),.overlay:has(.dlg-legal)){place-items:stretch stretch}.dlg-project,.dlg-legal{width:100vw;height:100dvh}.proj{border-radius:0}.proj-logo{width:80px}.dlg-pages{width:100vw}.pages-box{border-radius:28px 28px 0 0}.dlg-contact,.cform{max-height:100dvh}.overlay{place-items:stretch stretch}.dlg-service{width:100vw;height:100dvh}.win{border-radius:0;grid-template-rows:auto 1fr;grid-template-columns:1fr}.side{border-right:0;border-bottom:1px solid var(--line);flex-flow:wrap;justify-content:space-between;gap:8px;padding:10px 12px}.side-logo{width:92px}.side-nav{flex-direction:row;order:3;justify-content:space-between;width:100%;margin:0}.side-nav button{border-radius:0 16px;min-height:46px}.side-nav button small{display:none}.lang{margin:0 52px 0 auto}.lang select{min-height:40px}.win-main>.x-btn{float:none;margin:0;position:fixed;top:10px;right:10px}.win-main h1{padding-right:0}.intro-row{margin-bottom:0}.intro-txt{gap:16px}.win-main{padding:18px 18px 64px}.dlg-contact{width:100vw}.cform{border-radius:28px 28px 0 0;min-height:100dvh}.step-f legend{float:none;width:auto;margin-bottom:10px}.step-f legend+*{margin-left:0}.fields{grid-template-columns:1fr}.fields .sel:nth-last-child(2),.fields .sel:last-child{grid-column:auto}.cf-foot{grid-template-columns:1fr}.send{grid-area:auto/1;justify-content:center}.pages-btn{width:104px;height:44px}.logo{width:96px}.caption{font-size:var(--fs-sm)}.scene[data-scene=mvp] canvas{width:min(42vh,76vw)}.scene[data-scene=mvp] canvas,.scene[data-scene=mvp] .core{translate:0 3vh}.phone{height:min(38vh,560px);translate:0 3.5vh}.draw-hint{top:auto;bottom:calc(100% + 6px)}.web-links{translate:0 -14px}:is(body:has(.scene[data-scene=mvp]:not([hidden])) .caption,body:has(.scene[data-scene=web]:not([hidden])) .caption,body:has(.scene[data-scene=apps]:not([hidden])) .caption,body:has(.scene[data-scene=proyectos]:not([hidden])) .caption){bottom:calc(22% - 40px)}}.hero{z-index:2;padding:clamp(96px, 15vh, 150px) var(--edge-x) clamp(104px, 16vh, 170px);text-align:center;opacity:0;visibility:hidden;filter:blur(12px);pointer-events:none;transition:opacity .5s var(--ease-soft), filter .5s var(--ease-soft), visibility 0s linear .5s;flex-direction:column;justify-content:center;align-items:center;gap:clamp(16px,3.2vh,36px);display:flex;position:absolute;inset:0}body.hero-on .hero{opacity:1;visibility:visible;filter:none;pointer-events:auto;transition:opacity .9s var(--ease-soft), filter .9s var(--ease-soft), visibility 0s}.stage,.svc-nav,.caption{transition:opacity .9s var(--ease-soft), filter .9s var(--ease-soft), visibility 0s}body.hero-on .stage,body.hero-on .svc-nav,body.hero-on .caption{opacity:0;visibility:hidden;filter:blur(12px);transition:opacity .5s var(--ease-soft), filter .5s var(--ease-soft), visibility 0s linear .5s}.hero-title{font-size:var(--fs-display);letter-spacing:-.02em;color:var(--ink);margin:0;font-weight:300;line-height:1.08}.hero-title span{display:block}.hero-title span:last-child:after{content:"";background:var(--brand);width:.11em;height:.11em;margin-left:.05em;display:inline-block}.hero-text{max-width:46ch;font-size:var(--fs-lg);color:var(--ink-2);text-wrap:pretty;margin:0;font-weight:300;line-height:1.6}.hero-cta{min-height:44px;font-size:var(--fs-md);color:var(--ink);transition:color .4s var(--ease-soft);margin-top:clamp(4px,1.4vh,16px);padding:0 0 6px;font-weight:400;position:relative}.hero-cta:after{content:"";background:var(--brand-deep);width:48px;height:1px;transition:width .5s var(--ease-soft);position:absolute;bottom:8px;left:0}.hero-cta:hover,.hero-cta:focus-visible{color:var(--brand-deep)}.hero-cta:hover:after,.hero-cta:focus-visible:after{width:100%}.hero:not(.in) :is(.hero-title,.hero-text,.hero-cta){opacity:0}.hero.in :is(.hero-title,.hero-text,.hero-cta){animation:reveal .9s var(--ease-soft) backwards}@media (width>=1025px){.hero{text-align:left;padding-inline:calc(var(--edge-x) + clamp(0px, 3vw, 56px)) 50vw;align-items:flex-start}.hero-text{max-width:42ch}.stage{transition:opacity .9s var(--ease-soft), filter .9s var(--ease-soft), visibility 0s, translate 1.2s var(--ease-soft), scale 1.2s var(--ease-soft)}body.hero-on .stage{opacity:1;visibility:visible;filter:none;transition:opacity .9s var(--ease-soft), translate 1.2s var(--ease-soft), scale 1.2s var(--ease-soft);translate:24vw 2vh;scale:1.18}}@media (width<=640px){.hero{gap:16px}.hero-text{font-size:var(--fs-md)}}.reveal:not(.in){opacity:0}.reveal.in{animation:reveal .9s var(--ease-soft) var(--reveal-delay,0s) backwards}@keyframes reveal{0%{opacity:0;translate:0 12px}}.scene:not([hidden]){animation:scene-in .9s var(--ease-soft) backwards}.caption.in{animation:reveal .8s var(--ease-soft) .12s backwards}body[data-dir=prev] .caption.in{animation-name:reveal-down}@keyframes scene-in{0%{opacity:0;filter:blur(12px)}}@keyframes reveal-down{0%{opacity:0;translate:0 -12px}}.lenis.lenis-smooth{scroll-behavior:auto}.cursor{--size:40px;z-index:100;pointer-events:none;opacity:0;width:0;height:0;transition:opacity .3s var(--ease-soft);position:fixed;top:0;left:0}.cursor:before,.cursor:after{content:"";border-radius:50%;position:absolute;translate:-50% -50%}.cursor:before{width:var(--size);height:var(--size);background:color-mix(in srgb, var(--brand) 10%, transparent);border:1px solid color-mix(in srgb, var(--brand) 35%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:width .35s var(--ease-soft), height .35s var(--ease-soft), background .35s var(--ease-soft), scale .2s var(--ease-soft)}.cursor:after{background:var(--brand-deep);width:6px;height:6px;transition:scale .35s var(--ease-soft)}.cursor.on{opacity:1}.cursor.link{--size:64px}.cursor.link:before{background:color-mix(in srgb, var(--cyan-soft) 8%, transparent);border-color:color-mix(in srgb, var(--brand-deep) 45%, transparent);-webkit-backdrop-filter:none;backdrop-filter:none}.cursor.link:after{scale:0}.cursor.press:before{scale:.85}.cursor.away{opacity:0}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}body.pages-open .contact-btn{z-index:40;transform:translateX(calc(-1 * var(--pages-w) - 28px))}.sat{z-index:60;pointer-events:none;width:48px;filter:drop-shadow(0 4px 10px color-mix(in srgb, var(--brand) 45%, transparent));position:fixed;top:0;left:0}.svc-item,.svc-item img,.svc-item span{transition:opacity .4s var(--ease-soft), filter .4s var(--ease-soft), transform .4s var(--ease-soft), color .4s var(--ease-soft)}.svc-item:hover,.svc-item:focus-visible{color:var(--ink)}.svc-item:hover img,.svc-item:focus-visible img{opacity:1;filter:none;transform:scale(1.12)}.stage-hit{z-index:2;cursor:pointer;opacity:0;border-radius:24px;position:absolute;inset:0}body:has(.scene[data-scene=apps]:not([hidden])) .stage-hit{touch-action:none}.stage-hit:focus-visible{opacity:1;outline:3px solid var(--focus);background:0 0}.laptop canvas{z-index:3}.web-links{z-index:4}.carousel{touch-action:none;outline:0;width:100%;height:100%;position:relative}.carousel-gl{pointer-events:none;position:absolute;inset:-10%}.carousel-gl canvas{display:block}.carousel:focus-visible{outline:3px solid var(--focus);outline-offset:-6px;border-radius:24px}.piece{cursor:pointer;border-radius:16px;position:absolute;top:0;left:0}.piece:focus-visible{outline-offset:6px}.car-nav{z-index:6;background:color-mix(in srgb, var(--white) 70%, transparent);width:48px;height:48px;box-shadow:0 4px 14px color-mix(in srgb, var(--brand) 25%, transparent);color:var(--ink-2);border-radius:50%;place-items:center;display:grid;position:absolute;top:50%}.car-nav svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.car-nav.prev{left:0}.car-nav.next{right:0}.car-nav:hover{background:var(--white)}@media (width<=640px){.car-nav{top:auto;bottom:calc(-5vh - 100px)}.car-nav.prev{left:calc(50% - 64px)}.car-nav.next{right:calc(50% - 64px)}body.pages-open .contact-btn{transform:none}.pages-box{padding-bottom:96px}}@media (width<=1024px) and (height<=500px) and (orientation:landscape){.svc-nav{left:var(--edge-x);flex-direction:column;align-items:stretch;gap:2px;top:50%;transform:translateY(-50%)}.svc-item{text-align:left;flex-direction:row;gap:10px;width:auto;min-height:44px}.svc-item img{width:28px;height:28px}.stage{width:44vw;height:66vh;top:47%}.scene[data-scene=mvp] canvas{width:min(60vh,44vw)}.draw-hint{top:auto;bottom:calc(100% + 6px)}.web-links{bottom:-12%}.caption{bottom:var(--edge-y);width:calc(100vw - 2 * (var(--edge-x) + 120px));font-size:var(--fs-sm)}body:has(.scene[data-scene=mvp]:not([hidden])) .caption{bottom:var(--edge-y);width:calc(100vw - 2 * (var(--edge-x) + 120px));font-size:var(--fs-sm)}body:has(.scene[data-scene=web]:not([hidden])) .caption{bottom:var(--edge-y);width:calc(100vw - 2 * (var(--edge-x) + 120px));font-size:var(--fs-sm)}.hero{padding:56px var(--edge-x) 60px;gap:12px}.hero-title{font-size:34px}.hero-title span{display:inline}.hero-text{max-width:72ch;font-size:var(--fs-sm)}.dlg-contact,.cform{max-height:calc(100dvh - 24px)}.dlg-service{height:calc(100dvh - 16px)}.side{gap:8px;padding:10px 6px;overflow-y:auto}.side-nav{gap:2px;margin-top:4px}.side-nav button{min-height:40px;padding:4px}.side-nav button img{width:28px;height:28px}.side-nav button small{display:none}}
