/* Shared by all three directions: resets, language switching, reveal motion, call pill. */
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}
body{overflow-x:hidden;-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}

/* one language at a time */
[data-lang=en] [data-l=es],[data-lang=es] [data-l=en]{display:none!important}

/* word reveal: each word rises out of its own mask; the mask leaves room for accents (Ú, Ñ) */
.rv .w{display:inline-block;overflow:hidden;vertical-align:top;padding:.16em .03em .08em;margin:-.16em -.03em -.08em}
.rv .wi{display:inline-block;transform:translate3d(0,112%,0);transition:transform .75s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--d,0) * 45ms)}
.rv.in .wi{transform:none}
.up{opacity:0;transform:translate3d(0,18px,0);transition:opacity .6s ease-out,transform .75s cubic-bezier(.2,.8,.2,1);transition-delay:var(--ud,0ms)}
.up.in{opacity:1;transform:none}

/* press feedback on anything tappable */
.btn,.lang button{transition:transform .14s ease-out,background-color .2s,color .2s,box-shadow .2s}
.btn:active,.lang button:active{transform:scale(.96)}

.call-pill{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom) + 14px);z-index:60;transform:translate(-50%,160%);transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.call-pill.show{transform:translate(-50%,0)}
.call-pill.show:active{transform:translate(-50%,0) scale(.96)}

@media (prefers-reduced-motion:reduce){
  .rv .wi,.up{transform:none!important;opacity:1!important;transition:none!important}
}
