@import url('https://fonts.googleapis.com/css2?family=Yanone+Kaffeesatz:wght@500;600;700&family=Nunito:ital,wght@0,400;0,600;0,700;0,800;1,600&display=swap');
:root {
color-scheme: only light;
--blue: #007086; 
--turq: #00816d; 
--sky: #99d6ea; 
--orange: #dc582a; 
--lime: #d0df00; 
--blue-deep: #00566a;
--ink: #07414c; 
--paper: #ffffff;
--glass-bg: rgba(255, 255, 255, 0.46);
--glass-bg-strong: rgba(255, 255, 255, 0.62);
--glass-brd: rgba(255, 255, 255, 0.75);
--glass-blur: 18px;
--glass-shadow: 0 18px 50px -22px rgba(0, 60, 80, 0.45), 0 4px 14px -8px rgba(0, 80, 110, 0.25);
--r-lg: 30px;
--r-md: 20px;
--r-sm: 14px;
--font-display: 'Yanone Kaffeesatz', system-ui, sans-serif;
--font-body: 'Nunito', system-ui, sans-serif;
}
* {
box-sizing: border-box;
}
html,
body {
margin: 0;
padding: 0;
}
[hidden] {
display: none !important;
}
body {
background: #8ed3ea; 
}
.aq-scene {
position: relative;
overflow: hidden;
isolation: isolate;
background: radial-gradient(
120% 80% at 50% -10%,
#ffffff 0%,
#f4fbfe 38%,
#e9f7fc 60%,
#d7f0f8 100%
);
font-family: var(--font-body);
color: var(--ink);
}
.aq-scene::before {
content: '';
position: absolute;
inset: -10%;
background:
radial-gradient(40% 30% at 22% 12%, rgba(208, 223, 0, 0.16), transparent 70%),
radial-gradient(46% 36% at 84% 18%, rgba(153, 214, 234, 0.5), transparent 70%),
radial-gradient(50% 40% at 70% 95%, rgba(0, 129, 109, 0.16), transparent 72%);
filter: blur(6px);
z-index: 0;
pointer-events: none;
}
.aq-caustics {
position: absolute;
inset: 0;
z-index: 0;
pointer-events: none;
background: repeating-linear-gradient(
115deg,
rgba(255, 255, 255, 0) 0 38px,
rgba(255, 255, 255, 0.22) 38px 42px,
rgba(255, 255, 255, 0) 42px 90px
);
mix-blend-mode: screen;
opacity: 0.5;
-webkit-mask-image: radial-gradient(80% 60% at 50% 0%, #000 0%, transparent 75%);
mask-image: radial-gradient(80% 60% at 50% 0%, #000 0%, transparent 75%);
animation: aq-caustics 14s ease-in-out infinite alternate;
}
@keyframes aq-caustics {
from {
transform: translateX(-4%) skewX(-2deg);
}
to {
transform: translateX(4%) skewX(2deg);
}
}
.aq-content {
position: relative;
z-index: 3;
}
.aq-waves {
position: absolute;
left: -6%;
right: -6%;
bottom: 0;
z-index: 1;
pointer-events: none;
line-height: 0;
}
.aq-waves svg {
display: block;
width: 100%; 
height: clamp(180px, 30vh, 360px); 
}
.aq-wave-a {
transform-box: fill-box;
animation: aq-bob 9s ease-in-out infinite;
}
.aq-wave-b {
transform-box: fill-box;
animation: aq-bob 7s ease-in-out infinite reverse;
}
@keyframes aq-bob {
0%,
100% {
transform: translateX(0);
}
50% {
transform: translateX(-3.5%);
}
}
.aq-bubbles {
position: absolute;
inset: 0;
z-index: 2;
pointer-events: none;
overflow: hidden;
}
.aq-bubble {
position: absolute;
bottom: -40px;
border-radius: 50%;
background: radial-gradient(
circle at 32% 28%,
rgba(255, 255, 255, 0.95),
rgba(153, 214, 234, 0.35) 55%,
rgba(0, 112, 134, 0.12) 100%
);
border: 1px solid rgba(255, 255, 255, 0.65);
box-shadow: inset 0 0 6px rgba(255, 255, 255, 0.6);
animation: aq-rise linear infinite;
opacity: 0;
}
@keyframes aq-rise {
0% {
transform: translateY(0) translateX(0) scale(0.6);
opacity: 0;
}
10% {
opacity: 0.85;
}
50% {
transform: translateY(-46vh) translateX(14px) scale(1);
}
90% {
opacity: 0.7;
}
100% {
transform: translateY(-96vh) translateX(-10px) scale(1.05);
opacity: 0;
}
}
@media (prefers-reduced-motion: reduce) {
.aq-bubble,
.aq-caustics,
.aq-wave-a,
.aq-wave-b {
animation: none;
}
}
.aq-coral {
position: absolute;
z-index: 1;
pointer-events: none;
filter: blur(0.2px);
opacity: 0.9;
}
.aq-blob {
border-radius: 46% 54% 58% 42% / 54% 42% 58% 46%;
filter: drop-shadow(0 10px 18px rgba(0, 80, 90, 0.18));
}
.glass {
background: var(--glass-bg);
-webkit-backdrop-filter: blur(var(--glass-blur)) saturate(150%);
backdrop-filter: blur(var(--glass-blur)) saturate(150%);
border: 1px solid var(--glass-brd);
border-radius: var(--r-lg);
box-shadow: var(--glass-shadow);
position: relative;
}
.glass::after {
content: '';
position: absolute;
inset: 0;
border-radius: inherit;
pointer-events: none;
background: linear-gradient(160deg, rgba(255, 255, 255, 0.55), rgba(255, 255, 255, 0) 40%);
-webkit-mask: linear-gradient(#000, #000);
mask: linear-gradient(#000, #000);
opacity: 0.7;
}
.glass-strong {
background: var(--glass-bg-strong);
}
.glass-sky {
background: linear-gradient(160deg, rgba(153, 214, 234, 0.55), rgba(255, 255, 255, 0.32));
}
.glass-turq {
background: linear-gradient(160deg, rgba(0, 129, 109, 0.3), rgba(255, 255, 255, 0.3));
}
.glass-blue {
background: linear-gradient(160deg, rgba(0, 112, 134, 0.32), rgba(255, 255, 255, 0.28));
}
.display {
font-family: var(--font-display);
font-weight: 700;
line-height: 1.02;
letter-spacing: 0.5px;
color: var(--blue);
margin: 0;
}
.eyebrow {
font-family: var(--font-display);
font-weight: 600;
letter-spacing: 3px;
text-transform: uppercase;
color: var(--turq);
margin: 0;
}
.lead {
font-family: var(--font-body);
color: var(--turq);
margin: 0;
}
.sup {
color: var(--blue);
}
.btn {
font-family: var(--font-display);
font-weight: 700;
letter-spacing: 0.6px;
border: none;
cursor: pointer;
color: #fff;
background: var(--blue);
border-radius: 999px;
padding: 16px 30px;
font-size: 22px;
display: inline-flex;
align-items: center;
gap: 10px;
justify-content: center;
box-shadow: 0 12px 26px -10px rgba(0, 112, 134, 0.7);
transition:
transform 0.18s ease,
background 0.2s ease,
box-shadow 0.2s ease;
}
.btn:hover {
background: var(--orange);
transform: translateY(-2px);
box-shadow: 0 16px 30px -10px rgba(220, 88, 42, 0.6);
}
.btn:active {
transform: translateY(0);
}
.btn[disabled] {
opacity: 0.55;
cursor: not-allowed;
transform: none;
}
.badge {
font-family: var(--font-display);
font-weight: 600;
letter-spacing: 1.4px;
text-transform: uppercase;
display: inline-flex;
align-items: center;
gap: 8px;
border-radius: 999px;
padding: 8px 16px;
font-size: 15px;
background: rgba(255, 255, 255, 0.55);
border: 1.5px dashed var(--turq);
color: var(--turq);
-webkit-backdrop-filter: blur(6px);
backdrop-filter: blur(6px);
}
.badge-orange {
border-color: var(--orange);
color: var(--orange);
}
.badge-lime {
border: none;
background: var(--lime);
color: #3a4a00;
}
.seal {
animation: aq-spin 24s linear infinite;
}
@keyframes aq-spin {
to {
transform: rotate(360deg);
}
}
@media (prefers-reduced-motion: reduce) {
.seal {
animation: none;
}
}
.field {
display: flex;
flex-direction: column;
gap: 6px;
}
.field label {
font-family: var(--font-body);
font-weight: 700;
color: var(--turq);
font-size: 14px;
}
.field .opt {
font-weight: 600;
color: #8aa6ac;
}
.input {
font-family: var(--font-body);
font-size: 16px;
color: var(--ink);
background: rgba(255, 255, 255, 0.72);
border: 1.5px solid rgba(0, 112, 134, 0.18);
border-radius: 14px;
padding: 13px 16px;
outline: none;
transition:
border-color 0.15s,
box-shadow 0.15s,
background 0.15s;
width: 100%;
}
.input::placeholder {
color: #9fb6bb;
}
.input:focus {
border-color: var(--blue);
box-shadow: 0 0 0 4px rgba(0, 112, 134, 0.14);
background: #fff;
}
.input.err {
border-color: var(--orange);
box-shadow: 0 0 0 4px rgba(220, 88, 42, 0.12);
}
.err-msg {
color: var(--orange);
font-size: 13px;
font-weight: 700;
margin: 0;
}
.hr-sky {
height: 2px;
border: none;
border-radius: 2px;
background: linear-gradient(90deg, transparent, var(--sky), transparent);
margin: 0;
}
.soc {
width: 46px;
height: 46px;
border-radius: 50%;
display: grid;
place-items: center;
background: rgba(255, 255, 255, 0.6);
border: 1.5px solid rgba(0, 112, 134, 0.18);
color: var(--blue);
transition:
transform 0.16s,
background 0.2s,
color 0.2s,
border-color 0.2s;
cursor: pointer;
text-decoration: none;
}
.soc:hover {
background: var(--orange);
color: #fff;
border-color: var(--orange);
transform: translateY(-3px);
}
.soc svg {
width: 22px;
height: 22px;
}
.aq-scene.c-immersive {
background: radial-gradient(
120% 90% at 50% -10%,
#eafaff 0%,
#cdeef8 45%,
#a9e0f2 78%,
#8ed3ea 100%
);
min-height: 100svh;
}
.wrap {
position: relative;
z-index: 3;
max-width: 980px;
margin: 0 auto;
padding: 46px 24px 150px;
display: flex;
flex-direction: column;
align-items: center;
gap: 26px;
text-align: center;
}
.logo-mascota {
width: clamp(120px, 16vw, 168px);
height: auto;
filter: drop-shadow(0 12px 22px rgba(0, 80, 90, 0.25));
}
.hero-h1 {
font-family: var(--font-display);
font-weight: 700;
line-height: 1.02;
letter-spacing: 0.5px;
color: var(--blue);
font-size: clamp(42px, 6.4vw, 64px);
margin: 0;
}
.hero-h1 .nueva {
color: var(--orange);
}
.hero-sub {
font-family: var(--font-body);
color: var(--turq);
font-size: clamp(17px, 2.2vw, 22px);
max-width: 680px;
margin: 0;
}
.pilares {
display: flex;
gap: 12px;
flex-wrap: wrap;
justify-content: center;
}
.pilar {
display: inline-flex;
align-items: center;
gap: 8px;
font-family: var(--font-body);
font-weight: 700;
color: var(--ink);
background: var(--glass-bg);
border: 1px solid var(--glass-brd);
border-radius: 999px;
padding: 8px 16px;
-webkit-backdrop-filter: blur(8px);
backdrop-filter: blur(8px);
}
.pilar i {
width: 10px;
height: 10px;
border-radius: 50%;
}
.panel-countdown {
width: 100%;
max-width: 760px;
padding: clamp(18px, 3vw, 30px);
}
.cd-row {
display: flex;
gap: clamp(8px, 1.6vw, 16px);
align-items: stretch;
width: 100%;
}
.cd-tile {
flex: 1 1 0;
min-width: 0;
display: flex;
flex-direction: column;
align-items: center;
gap: 10px;
}
.cd-box {
width: 100%;
border-radius: 22px;
padding: clamp(12px, 2.4vw, 22px) 6px;
display: grid;
place-items: center;
position: relative;
overflow: hidden;
}
.cd-box .agua {
position: absolute;
left: 0;
right: 0;
bottom: 0;
height: 42%;
background: linear-gradient(180deg, rgba(153, 214, 234, 0), rgba(153, 214, 234, 0.35));
pointer-events: none;
}
.cd-num {
font-family: var(--font-display);
font-weight: 700;
font-size: clamp(40px, 7vw, 86px);
line-height: 1;
color: var(--blue);
font-variant-numeric: tabular-nums;
position: relative;
text-shadow: 0 2px 0 rgba(255, 255, 255, 0.6);
}
.cd-num.seg {
color: var(--orange);
}
.cd-sep {
display: flex;
flex-direction: column;
justify-content: center;
gap: 12px;
padding-top: 8px;
}
.cd-sep i {
width: 8px;
height: 8px;
border-radius: 50%;
background: var(--sky);
}
.card-form {
width: 100%;
max-width: 480px;
padding: clamp(20px, 3vw, 30px);
display: flex;
flex-direction: column;
gap: 14px;
}
.incentivo {
font-family: var(--font-body);
color: var(--turq);
margin: 0;
}
.socials {
display: flex;
gap: 12px;
justify-content: center;
}
.done-card {
text-align: center;
display: flex;
flex-direction: column;
align-items: center;
gap: 14px;
padding: 8px 4px;
}
.done-pulpo {
width: 72px;
height: 72px;
border-radius: 50%;
display: grid;
place-items: center;
background: var(--lime);
font-size: 38px;
box-shadow: 0 10px 26px -10px rgba(0, 112, 134, 0.5);
}
.hp {
position: absolute;
left: -9999px;
width: 1px;
height: 1px;
overflow: hidden;
}
@media (max-width: 768px) {
.wrap {
padding: 34px 18px 120px;
gap: 20px;
}
.cd-row {
gap: 6px;
}
}
.split {
position: relative;
z-index: 3;
max-width: 1180px;
margin: 0 auto;
padding: 54px 48px 180px;
display: grid;
grid-template-columns: 1.15fr 0.85fr;
gap: 52px;
align-items: center;
}
.split-brand {
display: flex;
flex-direction: column;
gap: 22px;
}
.split-brand .logo-mascota {
width: clamp(130px, 13vw, 168px);
}
.brand-text {
display: flex;
flex-direction: column;
gap: 12px;
text-align: left;
}
.split .hero-h1,
.split .hero-sub {
text-align: left;
}
.split .hero-sub {
max-width: 520px;
}
.split .pilares {
justify-content: flex-start;
}
.split .cd-row {
margin-top: 2px;
}
.brand-foot {
display: flex;
align-items: center;
gap: 16px;
flex-wrap: wrap;
}
.card-form {
align-self: stretch;
justify-content: center;
}
.card-form form {
display: flex;
flex-direction: column;
gap: 14px;
}
.card-head {
display: flex;
align-items: center;
gap: 14px;
}
.seal-wrap {
position: relative;
width: 88px;
height: 88px;
flex: none;
}
.seal-glyph {
position: absolute;
inset: 0;
display: grid;
place-items: center;
font-size: 30px;
}
.card-title {
font-family: var(--font-display);
font-weight: 700;
line-height: 0.95;
letter-spacing: 0.5px;
color: var(--blue);
font-size: 30px;
margin: 0;
}
.btn-block {
width: 100%;
margin-top: 8px;
}
@media (max-width: 860px) {
.split {
grid-template-columns: 1fr;
gap: 30px;
padding: 34px 20px 150px;
text-align: center;
}
.split-brand {
align-items: center;
}
.brand-text {
text-align: center;
align-items: center;
}
.split .hero-h1,
.split .hero-sub {
text-align: center;
}
.split .pilares {
justify-content: center;
}
.brand-foot {
justify-content: center;
}
.card-head {
flex-direction: column;
text-align: center;
}
}
.cupon-done {
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
}
.cupon-codigo {
font-family: ui-monospace, Consolas, monospace;
font-size: 28px;
letter-spacing: 4px;
font-weight: 800;
color: var(--blue);
border: 2px dashed var(--turq);
border-radius: 14px;
padding: 10px 16px;
}
#qr-done svg {
display: block;
}