:root {
--sky1: #F0F4F8;
--sky2: #E1EAF2;
--sky3: #E5F0EE;
--ink: #14252F;
--soft: #586E7B;
--faint: #8FA2AE;
--white: rgba(255, 255, 255, .76);
--line: rgba(255, 255, 255, .88);
--blue: #246BFD;
--violet: #5946C8;
--mint: #36B8A0;
--rose: #E04F78;
--amber: #E4A83A;
--grad: linear-gradient(135deg, #246BFD, #5946C8);
--grad2: linear-gradient(135deg, #087F83, #36B8A0);
--shadow: 0 22px 60px rgba(20, 37, 47, .11);
}
.modal{
z-index: 100000;
}
* {
box-sizing: border-box;
margin: 0;
padding: 0
}
html {
scroll-behavior: smooth;
overflow-x: hidden
}
body {
font-family: 'Nunito', sans-serif;
color: var(--ink);
background: linear-gradient(160deg, var(--sky1), var(--sky2) 52%, var(--sky3));
background-attachment: fixed;
overflow-x: hidden;
line-height: 1.7;
cursor: none
}
h1,
h2,
h3,
h4,
h5 {
font-family: 'Sora', sans-serif;
font-weight: 700;
letter-spacing: -.02em;
line-height: 1.18
}
a,
button {
cursor: none
}
::selection {
background: var(--violet);
color: #fff
}
::-webkit-scrollbar {
width: 9px
}
::-webkit-scrollbar-thumb {
background: linear-gradient(var(--blue), var(--violet));
border-radius: 10px
}
::-webkit-scrollbar-track {
background: transparent
}
/* floating blobs */
.blobs {
position: fixed;
inset: 0;
pointer-events: none;
z-index: 0;
overflow: hidden
}
.blob {
position: absolute;
border-radius: 50%;
filter: blur(70px);
opacity: .55;
animation: drift 16s ease-in-out infinite
}
.blob1 {
width: 440px;
height: 440px;
background: #BFE3FF;
top: -90px;
left: -110px
}
.blob2 {
width: 380px;
height: 380px;
background: #DCCEFF;
top: 26%;
right: -120px;
animation-delay: -5s
}
.blob3 {
width: 420px;
height: 420px;
background: #C5F2DD;
bottom: -120px;
left: 22%;
animation-delay: -9s
}
@keyframes drift {
0%,
100% {
transform: translate(0, 0)
}
33% {
transform: translate(26px, -22px)
}
66% {
transform: translate(-18px, 16px)
}
}
/* clouds */
.cloud {
position: absolute;
background: rgba(255, 255, 255, .6);
border-radius: 999px;
pointer-events: none;
z-index: 0
}
.cloud::before,
.cloud::after {
content: '';
position: absolute;
background: inherit;
border-radius: 50%
}
.cloud1 {
width: 130px;
height: 44px;
top: 18%;
left: -90px;
animation: sail 60s linear infinite
}
.cloud1::before {
width: 52px;
height: 52px;
top: -26px;
left: 22px
}
.cloud1::after {
width: 38px;
height: 38px;
top: -16px;
left: 66px
}
.cloud2 {
width: 100px;
height: 34px;
top: 46%;
left: -70px;
animation: sail 80s linear infinite 20s
}
.cloud2::before {
width: 40px;
height: 40px;
top: -20px;
left: 18px
}
.cloud2::after {
width: 30px;
height: 30px;
top: -12px;
left: 52px
}
@keyframes sail {
to {
transform: translateX(calc(100vw + 160px))
}
}
#pre {
position: fixed;
inset: 0;
background: linear-gradient(160deg, var(--sky1), var(--sky2), var(--sky3));
z-index: 99999;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 16px;
transition: opacity .6s, visibility .6s
}
#pre.hide {
opacity: 0;
visibility: hidden
}
.pre-ball {
width: 64px;
height: 64px;
border-radius: 50%;
background: var(--grad);
display: grid;
place-items: center;
color: #fff;
font-size: 1.6rem;
animation: bob2 1.2s ease-in-out infinite;
box-shadow: 0 12px 30px rgba(139, 92, 246, .35)
}
@keyframes bob2 {
50% {
transform: translateY(-12px)
}
}
.pre-line {
width: 150px;
height: 4px;
background: rgba(255, 255, 255, .9);
border-radius: 99px;
overflow: hidden
}
.pre-line i {
display: block;
height: 100%;
width: 0;
background: var(--grad);
animation: fillw 1.5s ease forwards
}
@keyframes fillw {
to {
width: 100%
}
}
.cur {
position: fixed;
width: 9px;
height: 9px;
background: var(--violet);
border-radius: 50%;
z-index: 99998;
pointer-events: none;
transform: translate(-50%, -50%)
}
.cur-r {
position: fixed;
width: 40px;
height: 40px;
border: 1.5px solid rgba(139, 92, 246, .5);
border-radius: 50%;
z-index: 99997;
pointer-events: none;
transform: translate(-50%, -50%);
transition: width .25s, height .25s, background .25s
}
.cur-r.big {
width: 70px;
height: 70px;
background: rgba(139, 92, 246, .12)
}
#bar {
position: fixed;
top: 0;
left: 0;
height: 4px;
width: 0;
background: var(--grad);
z-index: 99996;
border-radius: 0 4px 4px 0
}
.wrap {
max-width: 1180px;
margin: 0 auto;
padding: 0 22px;
position: relative;
z-index: 2
}
section {
padding: 104px 0;
position: relative
}
.glass {
background: var(--white);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
border: 1px solid var(--line);
border-radius: 26px;
box-shadow: var(--shadow)
}
.kick {
display: inline-flex;
align-items: center;
gap: 8px;
background: rgba(255, 255, 255, .8);
border: 1px solid var(--line);
border-radius: 99px;
padding: 7px 16px;
font-size: .76rem;
font-weight: 800;
letter-spacing: .1em;
text-transform: uppercase;
color: var(--violet);
box-shadow: 0 6px 18px rgba(34, 49, 77, .06)
}
.h2 {
font-size: clamp(2rem, 4.5vw, 3.2rem);
margin: 14px 0 14px
}
.lead {
color: var(--soft);
font-size: 1.06rem;
max-width: 560px;
line-height: 1.85
}
.btn-a {
display: inline-flex;
align-items: center;
gap: 9px;
background: var(--grad);
color: #fff;
border: 0;
border-radius: 16px;
padding: 14px 26px;
font-weight: 800;
text-decoration: none;
box-shadow: 0 12px 28px rgba(14, 165, 233, .35);
transition: transform .2s, box-shadow .2s
}
.btn-a:hover {
transform: translateY(-3px);
box-shadow: 0 18px 40px rgba(139, 92, 246, .4);
color: #fff
}
.btn-b {
display: inline-flex;
align-items: center;
gap: 9px;
background: var(--white);
color: var(--ink);
border: 1px solid var(--line);
border-radius: 16px;
padding: 14px 26px;
font-weight: 800;
text-decoration: none;
backdrop-filter: blur(8px);
transition: transform .2s, box-shadow .2s
}
.btn-b:hover {
transform: translateY(-3px);
box-shadow: var(--shadow);
color: var(--ink)
}
.btn-c {
display: inline-flex;
align-items: center;
gap: 7px;
background: var(--grad);
color: #fff;
border: 0;
border-radius: 12px;
padding: 10px 18px;
font-weight: 800;
font-size: .9rem;
text-decoration: none;
box-shadow: 0 8px 20px rgba(14, 165, 233, .3)
}
.btn-c:hover {
color: #fff;
transform: translateY(-2px)
}
/* NAV */
.navx {
position: fixed;
top: 16px;
left: 50%;
transform: translateX(-50%);
z-index: 9000;
width: calc(100% - 32px);
max-width: 1120px;
background: var(--white);
backdrop-filter: blur(22px);
-webkit-backdrop-filter: blur(22px);
border: 1px solid var(--line);
border-radius: 99px;
box-shadow: 0 12px 40px rgba(34, 49, 77, .10);
display: flex;
align-items: center;
gap: 16px;
padding: 10px 12px 10px 22px;
transition: padding .3s
}
.navx.tight {
padding: 7px 10px 7px 18px
}
.logo {
font-family: 'Sora';
font-weight: 800;
font-size: 1.18rem;
color: var(--ink);
text-decoration: none;
display: flex;
align-items: center;
gap: 8px
}
.logo i {
width: 30px;
height: 30px;
border-radius: 50%;
background: var(--grad);
display: grid;
place-items: center;
color: #fff;
font-size: .85rem
}
.nlinks {
display: flex;
gap: 2px;
margin-left: auto
}
.nlinks a {
padding: 8px 13px;
border-radius: 99px;
color: var(--soft);
text-decoration: none;
font-weight: 700;
font-size: .9rem;
transition: all .2s
}
.nlinks a:hover,
.nlinks a.on {
background: rgba(139, 92, 246, .12);
color: var(--violet)
}
.burger {
display: none;
background: rgba(139, 92, 246, .12);
border: 0;
border-radius: 12px;
padding: 7px 12px;
color: var(--violet)
}
#mnav {
display: none;
position: fixed;
top: 78px;
left: 50%;
transform: translateX(-50%);
width: calc(100% - 32px);
max-width: 420px;
z-index: 8999;
background: var(--white);
backdrop-filter: blur(22px);
border: 1px solid var(--line);
border-radius: 20px;
box-shadow: var(--shadow);
padding: 12px;
flex-direction: column;
gap: 4px
}
#mnav a {
display: block;
padding: 10px 14px;
border-radius: 12px;
color: var(--soft);
text-decoration: none;
font-weight: 700
}
#mnav a:hover {
background: rgba(139, 92, 246, .1);
color: var(--violet)
}
/* HERO */
#hero {
padding: 150px 0 60px;
min-height: 100vh;
display: flex;
align-items: center
}
.hero-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 44px;
align-items: center
}
.hero-h {
font-size: clamp(2.4rem, 4vw, 4rem);
margin: 16px 0 16px
}
.hero-p {
color: var(--soft);
font-size: 1.1rem;
max-width: 480px;
margin-bottom: 26px;
line-height: 1.85
}
.chips-hero {
display: flex;
gap: 8px;
flex-wrap: wrap;
margin-top: 26px
}
.h-chip {
background: var(--white);
border: 1px solid var(--line);
border-radius: 99px;
padding: 9px 16px;
font-size: .85rem;
font-weight: 700;
color: var(--ink);
cursor: none;
transition: all .2s
}
.h-chip:hover {
background: var(--grad);
color: #fff;
border-color: transparent;
transform: translateY(-2px)
}
/* chat */
.chat {
position: relative;
padding: 24px
}
.chat-head {
display: flex;
align-items: center;
gap: 12px;
padding-bottom: 16px;
border-bottom: 1px solid rgba(255, 255, 255, .9);
margin-bottom: 18px
}
.chat-av {
width: 46px;
height: 46px;
border-radius: 50%;
background: var(--grad);
display: grid;
place-items: center;
color: #fff;
font-size: 1.2rem;
box-shadow: 0 8px 20px rgba(139, 92, 246, .3)
}
.chat-head b {
display: block
}
.chat-head span {
font-size: .8rem;
color: var(--soft)
}
.msgs {
display: flex;
flex-direction: column;
gap: 12px;
min-height: 230px
}
.msg {
max-width: 82%;
padding: 12px 16px;
border-radius: 18px;
font-size: .93rem;
line-height: 1.6;
animation: msgIn .45s cubic-bezier(.22, 1, .36, 1)
}
@keyframes msgIn {
from {
opacity: 0;
transform: translateY(14px)
}
to {
opacity: 1;
transform: none
}
}
.msg.bot {
background: #fff;
border: 1px solid var(--line);
border-radius: 18px 18px 18px 4px;
align-self: flex-start
}
.msg.me {
background: var(--grad);
color: #fff;
border-radius: 18px 18px 4px 18px;
align-self: flex-end
}
.typing {
display: flex;
gap: 5px;
padding: 14px 18px;
background: #fff;
border: 1px solid var(--line);
border-radius: 18px 18px 18px 4px;
align-self: flex-start
}
.typing i {
width: 8px;
height: 8px;
border-radius: 50%;
background: var(--faint);
animation: tp 1.2s infinite
}
.typing i:nth-child(2) {
animation-delay: .15s
}
.typing i:nth-child(3) {
animation-delay: .3s
}
@keyframes tp {
0%,
60%,
100% {
transform: translateY(0)
}
30% {
transform: translateY(-6px)
}
}
.qr {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-top: 16px;
padding-top: 14px;
border-top: 1px solid rgba(255, 255, 255, .9)
}
.qr button {
background: rgba(139, 92, 246, .08);
border: 1px solid rgba(139, 92, 246, .2);
border-radius: 99px;
padding: 8px 14px;
font-size: .82rem;
font-weight: 700;
color: var(--violet);
transition: all .2s
}
.qr button:hover {
background: var(--violet);
color: #fff;
transform: translateY(-2px)
}
/* hero floats */
.floaties {
position: absolute;
inset: 0;
pointer-events: none
}
.fly {
position: absolute;
display: flex;
align-items: center;
gap: 8px;
background: var(--white);
border: 1px solid var(--line);
border-radius: 16px;
padding: 10px 14px;
box-shadow: var(--shadow);
backdrop-filter: blur(10px);
font-size: .8rem;
font-weight: 700;
animation: fly 6s ease-in-out infinite
}
.fly1 {
top: -16px;
right: 8px
}
.fly2 {
bottom: 8px;
left: -14px;
animation-delay: 1.6s
}
.fly3 {
top: 38%;
right: -10px;
animation-delay: 3s
}
@keyframes fly {
0%,
100% {
transform: translateY(0)
}
50% {
transform: translateY(-12px)
}
}
/* ABOUT */
.about-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 44px;
align-items: center
}
.way {
display: flex;
flex-direction: column;
gap: 14px
}
.way-card {
display: grid;
grid-template-columns: 52px 1fr;
gap: 16px;
padding: 22px;
border-radius: 20px;
background: var(--white);
border: 1px solid var(--line);
backdrop-filter: blur(14px);
transition: transform .3s, box-shadow .3s
}
.way-card:hover {
transform: translateX(8px);
box-shadow: var(--shadow)
}
.way-n {
width: 52px;
height: 52px;
border-radius: 16px;
background: linear-gradient(135deg, rgba(14, 165, 233, .15), rgba(139, 92, 246, .15));
display: grid;
place-items: center;
font-size: 1.4rem
}
.way-card h4 {
font-size: 1.08rem;
margin-bottom: 5px
}
.way-card p {
color: var(--soft);
font-size: .92rem;
margin: 0;
line-height: 1.7
}
/* SERVICES */
#services {
padding-top: 20px
}
.chips {
display: flex;
gap: 9px;
flex-wrap: wrap;
justify-content: center;
margin: 40px 0 44px
}
.chip {
display: inline-flex;
align-items: center;
gap: 9px;
padding: 11px 20px;
border-radius: 99px;
background: var(--white);
border: 1px solid var(--line);
font-weight: 800;
font-size: .9rem;
color: var(--ink);
cursor: none;
backdrop-filter: blur(10px);
box-shadow: 0 6px 18px rgba(34, 49, 77, .06);
transition: all .25s
}
.chip:hover {
transform: translateY(-3px);
box-shadow: var(--shadow)
}
.chip.on {
background: var(--grad);
color: #fff;
border-color: transparent;
box-shadow: 0 12px 30px rgba(139, 92, 246, .35)
}
.pane {
display: none
}
.pane.on {
display: block;
animation: paneIn .5s cubic-bezier(.22, 1, .36, 1)
}
@keyframes paneIn {
from {
opacity: 0;
transform: translateY(24px)
}
to {
opacity: 1;
transform: none
}
}
.ph {
display: flex;
gap: 16px;
align-items: flex-start;
margin-bottom: 28px
}
.ph-ic {
width: 60px;
height: 60px;
border-radius: 20px;
background: var(--white);
border: 1px solid var(--line);
display: grid;
place-items: center;
font-size: 1.6rem;
box-shadow: 0 8px 22px rgba(34, 49, 77, .08)
}
.ph h3 {
font-size: 1.8rem;
margin-bottom: 4px
}
.ph p {
color: var(--soft);
margin: 0;
max-width: 600px
}
.desc {
color: var(--soft);
font-size: .95rem;
line-height: 1.8
}
/* 1 LOANS — soft rows */
.rows {
display: flex;
flex-direction: column;
gap: 12px
}
.lrow {
border-radius: 20px;
background: var(--white);
border: 1px solid var(--line);
backdrop-filter: blur(12px);
overflow: hidden;
transition: box-shadow .3s
}
.lrow:hover {
box-shadow: var(--shadow)
}
.lrow-head {
display: flex;
align-items: center;
gap: 14px;
padding: 18px 22px;
cursor: none;
width: 100%;
background: none;
border: 0;
text-align: left
}
.lrow-head span {
font-size: 1.4rem;
width: 46px;
height: 46px;
border-radius: 14px;
background: linear-gradient(135deg, rgba(14, 165, 233, .14), rgba(139, 92, 246, .14));
display: grid;
place-items: center;
flex-shrink: 0
}
.lrow-head h4 {
font-size: 1.08rem;
margin: 0;
flex: 1
}
.lrow-head i {
color: var(--violet);
transition: transform .35s
}
.lrow.open .lrow-head i {
transform: rotate(45deg)
}
.lrow-body {
max-height: 0;
overflow: hidden;
transition: max-height .5s cubic-bezier(.22, 1, .36, 1)
}
.lrow.open .lrow-body {
max-height: 340px
}
.lrow-in {
padding: 0 22px 22px 82px
}
.lrow-in p {
margin-bottom: 14px
}
/* 2 INSURANCE — bubbles + droplet */
.ins-wrap {
display: grid;
grid-template-columns: 1fr 1.15fr;
gap: 22px;
align-items: start
}
.sky-field {
position: relative;
min-height: 420px;
border-radius: 24px;
background: linear-gradient(180deg, rgba(191, 227, 255, .6), rgba(220, 206, 255, .5));
border: 1px solid var(--line);
overflow: hidden
}
.bubble {
position: absolute;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 3px;
width: 98px;
height: 98px;
border-radius: 40%;
background: var(--white);
border: 1px solid var(--line);
box-shadow: 0 10px 24px rgba(34, 49, 77, .10);
font-size: 1.5rem;
cursor: none;
transition: transform .25s, box-shadow .25s;
animation: bfloat 6s ease-in-out infinite
}
.bubble:hover,
.bubble.on {
transform: scale(1.15);
box-shadow: 0 0 0 4px rgba(139, 92, 246, .15), 0 14px 30px rgba(34, 49, 77, .14)
}
.bubble small {
font-size: .58rem;
font-weight: 800;
text-align: center;
line-height: 1.15
}
@keyframes bfloat {
0%,
100% {
transform: translateY(0)
}
50% {
transform: translateY(-9px)
}
}
.droplet {
padding: 28px
}
.droplet h4 {
font-size: 1.45rem;
margin: 8px 0 12px
}
/* 3 INVESTMENTS — plants */
.plants {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 18px
}
.plant {
padding: 26px;
text-align: center;
position: relative;
overflow: hidden
}
.plant svg {
height: 120px;
margin-bottom: 10px
}
.plant .stem {
transform-origin: bottom;
transform: scaleY(0);
transition: transform 1.2s cubic-bezier(.22, 1, .36, 1)
}
.plant.seen .stem {
transform: scaleY(1)
}
.plant h4 {
font-size: 1.15rem;
margin-bottom: 10px;
text-align: left
}
.plant .desc {
text-align: left
}
.meter {
height: 10px;
border-radius: 99px;
background: rgba(34, 49, 77, .08);
overflow: hidden;
margin: 14px 0 4px
}
.meter i {
display: block;
height: 100%;
width: 0;
border-radius: 99px;
background: var(--grad2);
transition: width 1.3s cubic-bezier(.22, 1, .36, 1)
}
.plant.seen .meter i {
width: var(--w)
}
.mlab {
font-size: .7rem;
font-weight: 800;
letter-spacing: .08em;
text-transform: uppercase;
color: var(--faint);
text-align: left
}
/* 4 WEALTH — stepping path */
.wealth-scroll {
overflow-x: auto;
padding-bottom: 10px
}
.wealth-track {
min-width: 1050px;
position: relative;
height: 340px
}
.wp-svg {
position: absolute;
inset: 0;
width: 100%;
height: 100%
}
.wp-path {
stroke-dasharray: 1400;
stroke-dashoffset: 1400;
transition: stroke-dashoffset 2s ease
}
.wealth-track.seen .wp-path {
stroke-dashoffset: 0
}
.wstop {
position: absolute;
width: 170px;
text-align: center;
cursor: none;
transition: transform .25s
}
.wstop:hover,
.wstop.on {
transform: translateY(-8px)
}
.wstop-circle {
width: 44px;
height: 44px;
margin: 0 auto 8px;
border-radius: 50%;
background: var(--white);
border: 2px solid var(--violet);
display: grid;
place-items: center;
font-size: 1.2rem;
box-shadow: 0 8px 20px rgba(34, 49, 77, .1)
}
.wstop.on .wstop-circle {
background: var(--grad);
border-color: transparent;
color: #fff
}
.wstop b {
font-size: .86rem;
line-height: 1.3;
display: block
}
/* 5 PAYMENTS — card stack */
.pay-grid {
display: grid;
grid-template-columns: 340px 1fr;
gap: 22px;
align-items: start
}
.deck {
position: relative;
height: 230px;
margin-bottom: 20px
}
.pcard {
position: absolute;
inset: 0;
border-radius: 22px;
padding: 24px;
color: #fff;
display: flex;
flex-direction: column;
justify-content: space-between;
transition: transform .5s cubic-bezier(.22, 1, .36, 1);
box-shadow: 0 20px 44px rgba(34, 49, 77, .22)
}
.pcard.top {
transform: translateY(-14px) rotate(0) scale(1.05)
}
.pc-chip {
width: 38px;
height: 28px;
border-radius: 6px;
background: linear-gradient(135deg, #FDE68A, #F59E0B)
}
.pc-num {
font-family: 'Sora';
font-weight: 700;
letter-spacing: .12em;
font-size: 1rem
}
.pc-row {
display: flex;
justify-content: space-between;
align-items: center
}
.pc-em {
font-size: 2rem;
background: rgba(255, 255, 255, .16);
width: 52px;
height: 52px;
border-radius: 16px;
display: grid;
place-items: center
}
.pay-chips {
display: flex;
gap: 8px;
flex-wrap: wrap;
margin-top: 68px
}
.pay-chips button {
background: var(--white);
border: 1px solid var(--line);
border-radius: 99px;
padding: 9px 15px;
font-weight: 800;
font-size: .82rem;
color: var(--ink);
transition: all .2s
}
.pay-chips button.on {
background: var(--grad);
color: #fff;
border-color: transparent
}
.pay-info {
padding: 28px
}
.pay-info h4 {
font-size: 1.4rem;
margin: 8px 0 12px
}
/* 6 DEBT — sky scenes */
.debt-grid {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 16px
}
.scene {
padding: 22px;
text-align: center;
transition: transform .3s, box-shadow .3s
}
.scene:hover {
transform: translateY(-6px);
box-shadow: var(--shadow)
}
.scene-ic {
font-size: 3rem;
height: 76px;
display: grid;
place-items: center;
animation: bob3 3.5s ease-in-out infinite
}
.scene:nth-child(2) .scene-ic {
animation-delay: .8s
}
.scene:nth-child(3) .scene-ic {
animation-delay: 1.6s
}
@keyframes bob3 {
0%,
100% {
transform: translateY(0)
}
50% {
transform: translateY(-8px)
}
}
.scene h4 {
font-size: 1.1rem;
margin-bottom: 10px
}
/* 7 HOME — hill house */
.home-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 22px;
align-items: start
}
.hill {
position: relative;
padding: 26px;
text-align: center;
overflow: hidden
}
.hill svg {
width: 100%;
max-width: 380px
}
.hzone {
cursor: none
}
.hzone.on path,
.hzone.on circle {
stroke-width: 3.5
}
.zb {
padding: 22px;
border-radius: 18px;
background: var(--white);
border: 1px solid var(--line);
margin-bottom: 12px;
cursor: none;
transition: all .2s
}
.zb:hover {
transform: translateX(6px);
box-shadow: var(--shadow)
}
.zb.on {
background: var(--grad);
color: #fff;
border-color: transparent
}
.zb.on .desc {
color: rgba(255, 255, 255, .85)
}
.zb h4 {
font-size: 1.05rem;
margin-bottom: 6px
}
/* 8 AUTO — garage */
.auto-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 22px;
align-items: start
}
.garage {
padding: 26px;
text-align: center;
position: relative;
overflow: hidden
}
.garage svg {
width: 100%;
max-width: 360px
}
.atag {
padding: 22px;
border-radius: 18px;
background: var(--white);
border: 1px solid var(--line);
margin-bottom: 12px;
cursor: none;
transition: all .2s
}
.atag:hover {
transform: translateX(6px);
box-shadow: var(--shadow)
}
.atag.on {
background: var(--grad);
color: #fff;
border-color: transparent
}
.atag.on .desc {
color: rgba(255, 255, 255, .85)
}
.atag h4 {
font-size: 1.05rem;
margin-bottom: 6px
}
/* BENEFITS */
.bens {
display: grid;
grid-template-columns: repeat(6, 1fr);
gap: 16px
}
.ben {
padding: 26px;
border-radius: 22px;
background: var(--white);
border: 1px solid var(--line);
backdrop-filter: blur(14px);
transition: transform .3s, box-shadow .3s
}
.ben:hover {
transform: translateY(-6px);
box-shadow: var(--shadow)
}
.ben:nth-child(1) {
grid-column: span 4
}
.ben:nth-child(2) {
grid-column: span 2
}
.ben:nth-child(3) {
grid-column: span 2
}
.ben:nth-child(4) {
grid-column: span 2
}
.ben:nth-child(5) {
grid-column: span 2
}
.ben:nth-child(6) {
grid-column: span 6;
display: flex;
align-items: center;
gap: 24px;
flex-wrap: wrap
}
.ben-ic {
width: 48px;
height: 48px;
border-radius: 15px;
background: linear-gradient(135deg, rgba(14, 165, 233, .14), rgba(139, 92, 246, .14));
display: grid;
place-items: center;
font-size: 1.3rem;
margin-bottom: 14px
}
.ben h4 {
font-size: 1.16rem;
margin-bottom: 8px
}
.ben p {
color: var(--soft);
margin: 0;
font-size: .94rem;
line-height: 1.75
}
/* PROCESS */
.steps {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 16px;
position: relative
}
.step {
position: relative;
padding: 26px;
border-radius: 22px;
background: var(--white);
border: 1px solid var(--line);
backdrop-filter: blur(14px);
text-align: center;
transition: transform .3s
}
.step:hover {
transform: translateY(-8px)
}
.step-n {
width: 46px;
height: 46px;
margin: 0 auto 14px;
border-radius: 50%;
background: var(--grad);
color: #fff;
display: grid;
place-items: center;
font-family: 'Sora';
font-weight: 700;
box-shadow: 0 10px 22px rgba(139, 92, 246, .3)
}
.step h4 {
font-size: 1.1rem;
margin-bottom: 8px
}
.step p {
color: var(--soft);
font-size: .9rem;
margin: 0
}
/* VOICES */
.voices {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 16px
}
.vc {
padding: 24px;
border-radius: 20px;
background: var(--white);
border: 1px solid var(--line);
backdrop-filter: blur(14px);
transition: transform .3s
}
.vc:hover {
transform: translateY(-6px);
box-shadow: var(--shadow)
}
.vc p {
font-size: .97rem;
color: var(--soft);
line-height: 1.75;
margin-bottom: 16px
}
.vc p::before {
content: '“';
font-family: 'Sora';
color: var(--violet);
font-size: 1.4rem
}
.who {
display: flex;
align-items: center;
gap: 10px
}
.av {
width: 40px;
height: 40px;
border-radius: 50%;
background: linear-gradient(135deg, rgba(14, 165, 233, .18), rgba(139, 92, 246, .18));
display: grid;
place-items: center;
font-weight: 800;
font-size: .85rem;
color: var(--violet)
}
.who b {
display: block;
font-size: .93rem
}
.who span {
font-size: .8rem;
color: var(--faint)
}
/* FAQ */
.faqs {
max-width: 840px;
margin: 0 auto
}
.fq {
border-radius: 18px;
background: var(--white);
border: 1px solid var(--line);
backdrop-filter: blur(12px);
margin-bottom: 12px;
overflow: hidden;
transition: box-shadow .3s
}
.fq.open {
box-shadow: var(--shadow)
}
.fq-q {
width: 100%;
background: none;
border: 0;
text-align: left;
padding: 20px 24px;
display: flex;
gap: 14px;
align-items: center;
font-family: 'Sora';
font-weight: 700;
font-size: 1.02rem;
color: var(--ink)
}
.fq-q i {
margin-left: auto;
color: var(--violet);
transition: transform .35s;
flex-shrink: 0
}
.fq.open .fq-q i {
transform: rotate(135deg)
}
.fq-a {
max-height: 0;
overflow: hidden;
transition: max-height .45s, padding .3s;
color: var(--soft);
padding: 0 24px
}
.fq.open .fq-a {
max-height: 320px;
padding: 0 24px 22px
}
/* FORMS */
.fg {
margin-bottom: 16px
}
.lab {
display: block;
font-weight: 800;
font-size: .85rem;
margin-bottom: 7px;
color: var(--ink)
}
.lab em {
color: var(--rose);
font-style: normal
}
.inp {
width: 100%;
padding: 13px 15px;
border: 1px solid rgba(255, 255, 255, .9);
border-radius: 14px;
background: #fff;
font-family: 'Nunito';
font-size: .95rem;
color: var(--ink);
outline: none;
box-shadow: 0 4px 14px rgba(34, 49, 77, .05)
}
.inp:focus {
border-color: var(--violet);
box-shadow: 0 0 0 4px rgba(139, 92, 246, .14)
}
.cbx {
display: flex;
gap: 10px;
align-items: flex-start
}
.cbx input {
margin-top: 4px;
accent-color: var(--violet)
}
/* NEWSLETTER */
#news {
padding-top: 40px
}
.nl-card {
max-width: 760px;
margin: 0 auto;
padding: 44px;
position: relative;
overflow: hidden
}
.nl-float {
position: absolute;
font-size: 1.8rem;
animation: fly 6s ease-in-out infinite;
opacity: .8
}
/* CONTACT */
.ct {
display: grid;
grid-template-columns: 1.1fr .9fr;
gap: 22px
}
.info {
display: flex;
gap: 14px;
padding: 18px;
border-radius: 18px;
background: var(--white);
border: 1px solid var(--line);
margin-bottom: 12px;
transition: transform .25s
}
.info:hover {
transform: translateY(-3px);
box-shadow: var(--shadow)
}
.info-ic {
width: 44px;
height: 44px;
border-radius: 14px;
background: linear-gradient(135deg, rgba(14, 165, 233, .14), rgba(139, 92, 246, .14));
display: grid;
place-items: center;
font-size: 1.2rem;
flex-shrink: 0
}
/* CTA */
.cta {
position: relative;
overflow: hidden;
border-radius: 30px;
background: var(--grad);
color: #fff;
padding: 64px 36px;
text-align: center;
box-shadow: 0 26px 60px rgba(139, 92, 246, .35)
}
.cta h2 {
color: #fff;
font-size: clamp(1.9rem, 4vw, 3rem);
margin-bottom: 12px
}
.cta p {
color: rgba(255, 255, 255, .85);
max-width: 520px;
margin: 0 auto 26px
}
.cta .spark {
position: absolute;
font-size: 1.6rem;
opacity: .5;
animation: fly 5s ease-in-out infinite
}
/* FOOTER */
footer {
background: linear-gradient(135deg, #1E293B, #312E81);
color: #CBD5E1;
padding: 64px 0 26px;
position: relative
}
footer h6 {
color: #A5B4FC;
font-size: .75rem;
letter-spacing: .14em;
text-transform: uppercase;
margin-bottom: 14px
}
footer a {
color: #CBD5E1;
text-decoration: none;
font-size: .92rem
}
footer a:hover {
color: #fff
}
.f-logo {
font-family: 'Sora';
font-weight: 800;
color: #fff;
font-size: 1.4rem;
display: flex;
align-items: center;
gap: 8px;
margin-bottom: 10px
}
#toasts {
position: fixed;
top: 18px;
right: 18px;
z-index: 99999;
display: flex;
flex-direction: column;
gap: 8px
}
.tst {
background: #fff;
color: var(--ink);
border: 1px solid var(--line);
border-radius: 14px;
padding: 13px 18px;
min-width: 270px;
box-shadow: var(--shadow);
font-weight: 700;
font-size: .92rem;
animation: tIn .4s cubic-bezier(.22, 1, .36, 1)
}
@keyframes tIn {
from {
opacity: 0;
transform: translateX(70px)
}
to {
opacity: 1;
transform: none
}
}
.modal-content {
border: 0;
border-radius: 22px;
background: #fff
}
.modal-header {
border: 0;
background: linear-gradient(135deg, #E0F2FE, #EDE9FE);
border-radius: 22px 22px 0 0
}
.modal-title {
font-family: 'Sora';
font-weight: 700
}
.modal-body p {
color: var(--soft)
}
.modal-body b {
color: var(--ink)
}
@media(max-width:992px) {
.hero-grid,
.about-grid,
.ins-wrap,
.pay-grid,
.home-grid,
.auto-grid,
.ct {
grid-template-columns: 1fr
}
.bens,
.steps,
.voices,
.plants {
grid-template-columns: 1fr 1fr
}
.ben:nth-child(1),
.ben:nth-child(2),
.ben:nth-child(6) {
grid-column: span 2
}
.debt-grid {
grid-template-columns: 1fr
}
}
@media(max-width:768px) {
body {
cursor: auto
}
.cur,
.cur-r {
display: none !important
}
a,
button,
.chip,
.h-chip,
.bubble,
.lrow-head,
.wstop,
.zb,
.atag,
.fq-q,
.qr button,
input,
select,
textarea {
cursor: pointer
}
.nlinks {
display: none
}
.burger {
display: block;
margin-left: auto
}
section {
padding: 70px 0
}
#hero {
padding: 130px 0 50px
}
.bens,
.steps,
.voices,
.plants {
grid-template-columns: 1fr
}
.ben:nth-child(1),
.ben:nth-child(2),
.ben:nth-child(6) {
grid-column: span 1
}
.lrow-in {
padding: 0 20px 20px 20px
}
.deck {
height: 190px
}
}

/* =========================================================
   MULTI-PAGE ADDITIONS (about / services / contact / legal)
   ========================================================= */
.page-head {
padding: 150px 0 8px
}
.legal-card {
padding: 44px
}
.legal-card p {
color: var(--soft);
font-size: .98rem;
line-height: 1.85;
margin-bottom: 16px
}
.legal-card p:last-child {
margin-bottom: 0
}
.legal-card b {
color: var(--ink)
}
section,
.pane {
scroll-margin-top: 96px
}
@media(max-width:768px) {
.page-head {
padding: 126px 0 4px
}
.legal-card {
padding: 26px
}
}