.c3d{display:none}.has-3d .c3d{display:block;position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .8s ease}.has-3d .is-3d-ready .c3d{opacity:1}.has-3d .is-3d-failed .c3d{display:none}.arch-stage,.gauge-stage{position:relative}.has-3d .arch-stage{aspect-ratio:4 / 3;display:grid;align-items:center}.has-3d .gauge-stage{aspect-ratio:16 / 11;display:grid;align-items:center}.has-3d .arch-stage>svg,.has-3d .gauge-stage>svg{transition:opacity .5s ease}.has-3d .is-3d-ready:not(.is-3d-failed) .arch-stage>svg,.has-3d .is-3d-ready:not(.is-3d-failed) .gauge-stage>svg{opacity:0;pointer-events:none}.only-3d{display:none}.is-3d-ready:not(.is-3d-failed) .only-3d{display:inline}.is-3d-ready:not(.is-3d-failed) .only-2d{display:none}.c3d-call,.c3d-num,.c3d-label{font-family:var(--f-mono);font-weight:600;-webkit-user-select:none;user-select:none;white-space:nowrap}.c3d-call{display:grid;place-items:center;width:22px;height:22px;border:1.2px solid var(--ink);border-radius:50%;background:var(--sheet);color:var(--ink);font-size:10.5px;transition:background-color .2s ease,box-shadow .2s ease}.c3d-call.on{background:var(--hl);box-shadow:0 0 0 4px var(--hl)}.c3d-label{padding:5px 8px;border:1px solid var(--ink);background:var(--sheet);color:var(--ink);font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;box-shadow:3px 3px 0 var(--accent)}.c3d-num{font-size:10.5px;color:var(--band-fg-2)}.c3d-num.is-solid{color:var(--band)}.c3d-num.is-no{color:var(--bad)}.obra-stage{display:none}.obra-cap{position:absolute;left:14px;right:14px;bottom:12px;margin:0;color:var(--ink-2);pointer-events:none}.pasos-obra .pn{transition:background-color .3s ease,color .3s ease}.pasos-obra li.on .pn{background:var(--accent);color:var(--on-accent)}.has-3d .obra:not(.is-3d-failed){display:grid;gap:24px}.has-3d .obra:not(.is-3d-failed) .obra-stage{display:block;position:sticky;top:calc(env(safe-area-inset-top,0px) + 65px);z-index:2;height:44vh;min-height:250px;background:var(--sheet);border:1.5px solid var(--ink)}.has-3d .obra:not(.is-3d-failed) .pasos-obra li{min-height:24vh}@media(min-width:900px){.has-3d .obra:not(.is-3d-failed){grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:56px;align-items:start}.has-3d .obra:not(.is-3d-failed) .obra-stage{top:calc(env(safe-area-inset-top,0px) + 96px);height:min(72vh,620px)}.has-3d .obra:not(.is-3d-failed) .pasos-obra{grid-template-columns:none;gap:0;padding-block:6vh 20vh}.has-3d .obra:not(.is-3d-failed) .pasos-obra li{padding:0 0 30px 52px;min-height:30vh}.has-3d .obra:not(.is-3d-failed) .pasos-obra li:before{left:17px;right:auto;top:36px;bottom:0;width:1.5px;height:auto}}.cota-scroll{position:absolute;left:0;right:0;bottom:-2px;height:3px;pointer-events:none}.cota-scroll span{display:block;height:100%;background:var(--accent);transform:scaleX(var(--p, 0));transform-origin:0 50%}.js-motion [data-reveal]{opacity:0;translate:0 26px;transition:opacity .8s ease var(--d, 0s),translate 1s cubic-bezier(.2,.75,.2,1) var(--d, 0s)}.js-motion [data-reveal].in{opacity:1;translate:none}.js-motion .phone{transform:perspective(1100px) rotateX(calc(var(--rx, 0) * 1deg)) rotateY(calc((var(--ry, 0) + var(--sy, 0)) * 1deg));box-shadow:calc((8 - (var(--ry, 0) + var(--sy, 0)) * .7) * 1px) calc((8 + var(--rx, 0) * .7) * 1px) 0 var(--rule);transition:transform .7s cubic-bezier(.2,.8,.2,1),box-shadow .7s cubic-bezier(.2,.8,.2,1)}.js-motion .phone.tilting{transition-duration:.15s}.js-tilt .dif,.js-tilt .via{position:relative;transform:perspective(900px) rotateX(calc(var(--rx, 0) * 1deg)) rotateY(calc(var(--ry, 0) * 1deg));transition:transform .6s cubic-bezier(.2,.8,.2,1),box-shadow .3s ease}.js-tilt .dif.tilting,.js-tilt .via.tilting{z-index:1;transition-duration:.15s,.3s;box-shadow:0 22px 44px -24px #1b1f1d80}.js-tilt .dif:after,.js-tilt .via:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:0;transition:opacity .3s ease;background:radial-gradient(380px circle at var(--mx, 50%) var(--my, 50%),rgba(255,255,255,.5),transparent 62%)}.js-tilt .dif.tilting:after,.js-tilt .via.tilting:after{opacity:1}@media(prefers-color-scheme:dark){.js-tilt .dif:after,.js-tilt .via:after{background:radial-gradient(380px circle at var(--mx, 50%) var(--my, 50%),rgba(255,255,255,.07),transparent 62%)}}
