/* =========================================================
   RESET
========================================================= */

*{
margin:0;
padding:0;
box-sizing:border-box;
}

html{
scroll-behavior:smooth;
}

body{
font-family:'Inter',sans-serif;
background:#f4f8ff;
color:#0f172a;
overflow-x:hidden;
-webkit-font-smoothing:antialiased;
}

/* =========================================================
   TOKENS
========================================================= */

:root{

--bg:#f4f8ff;
--bg-secondary:#ffffff;
--surface:#ffffff;

--text:#0f172a;
--text-soft:#526075;
--text-muted:#7d8797;

--line:rgba(15,23,42,.08);

--primary:#4f7cff;
--primary-2:#7c4dff;
--cyan:#00b8ff;

--gradient:
linear-gradient(
135deg,
#4f7cff 0%,
#7c4dff 55%,
#00c2ff 100%
);

--shadow-lg:
0 30px 60px rgba(15,23,42,.10);

--shadow-xl:
0 45px 90px rgba(79,124,255,.15);

--radius-xl:32px;
--radius-lg:24px;
--radius-md:18px;

--container:1280px;

}

/* =========================================================
   GLOBAL
========================================================= */

.container{
width:min(var(--container), calc(100% - 48px));
margin-inline:auto;
position:relative;
}

.section{
padding:120px 0;
position:relative;
}

.badge{
display:inline-flex;
align-items:center;
gap:10px;
padding:10px 18px;
border-radius:999px;
background:rgba(79,124,255,.08);
border:1px solid rgba(79,124,255,.15);
font-size:13px;
font-weight:600;
color:#3159d6;
margin-bottom:28px;
}

.section-title{
font-size:58px;
line-height:.96;
font-weight:800;
letter-spacing:-3px;
max-width:760px;
color:var(--text);
}

.section-description{
margin-top:22px;
font-size:18px;
line-height:1.7;
color:var(--text-soft);
max-width:680px;
}

/* =========================================================
   BACKGROUND LIGHTING
========================================================= */

.bg-light{
position:fixed;
inset:0;
z-index:-1;
overflow:hidden;
pointer-events:none;
}

.blob{
position:absolute;
border-radius:50%;
filter:blur(100px);
opacity:.35;
}

.blob-1{
width:500px;
height:500px;
background:#7c4dff;
top:-100px;
left:-100px;
}

.blob-2{
width:600px;
height:600px;
background:#00b8ff;
bottom:-200px;
right:-100px;
}

.blob-3{
width:400px;
height:400px;
background:#4f7cff;
top:30%;
left:40%;
}

/* =========================================================
   NAVBAR
========================================================= */

.navbar{
position:fixed;
top:0;
left:0;
width:100%;
z-index:1000;
padding:22px 0;
transition:.35s ease;
}

.navbar.scrolled{
padding:14px 0;
background:rgba(255,255,255,.82);
backdrop-filter:blur(18px);
border-bottom:1px solid rgba(15,23,42,.05);
}

.nav-wrapper{
display:flex;
align-items:center;
justify-content:space-between;
}

.logo img{
height:34px;
}

.nav-menu{
display:flex;
align-items:center;
gap:38px;
}

.nav-menu a{
text-decoration:none;
color:#314056;
font-size:14px;
font-weight:600;
transition:.3s;
}

.nav-menu a:hover{
color:var(--primary);
}

.nav-actions{
display:flex;
align-items:center;
gap:14px;
}

.btn{
height:50px;
padding:0 24px;
border-radius:16px;
border:none;
font-weight:700;
font-size:14px;
cursor:pointer;
transition:.35s ease;
position:relative;
overflow:hidden;
}

.btn-primary{
background:var(--gradient);
color:#fff;
box-shadow:
0 20px 40px rgba(79,124,255,.25);
}

.btn-primary:hover{
transform:translateY(-3px);
box-shadow:
0 30px 60px rgba(79,124,255,.35);
}

.btn-secondary{
background:#fff;
border:1px solid rgba(15,23,42,.08);
color:#0f172a;
}

.btn-secondary:hover{
transform:translateY(-3px);
}

/* =========================================================
   HERO
========================================================= */

.hero{
padding-top:180px;
padding-bottom:120px;
position:relative;
}

.hero-grid{
display:grid;
grid-template-columns:1.1fr .9fr;
align-items:center;
gap:70px;
}

.hero-copy{
position:relative;
z-index:3;
}

.hero-title{
font-size:72px;
line-height:.92;
font-weight:800;
letter-spacing:-4px;
max-width:760px;
color:#09111f;
}

.hero-title span{
background:var(--gradient);
-webkit-background-clip:text;
-webkit-text-fill-color:transparent;
}

.hero-description{
margin-top:28px;
font-size:20px;
line-height:1.8;
color:#4c5b70;
max-width:620px;
}

.hero-actions{
display:flex;
align-items:center;
gap:18px;
margin-top:40px;
flex-wrap:wrap;
}

.hero-stats{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:18px;
margin-top:56px;
max-width:720px;
}

.hero-stat{
background:rgba(255,255,255,.7);
backdrop-filter:blur(16px);
border:1px solid rgba(15,23,42,.06);
border-radius:22px;
padding:28px;
box-shadow:var(--shadow-lg);
}

.hero-stat h4{
font-size:36px;
font-weight:800;
letter-spacing:-2px;
color:#0f172a;
}

.hero-stat p{
margin-top:8px;
font-size:14px;
line-height:1.5;
color:#6a7687;
}

/* =========================================================
   HERO VISUAL
========================================================= */

.hero-visual{
position:relative;
height:720px;
display:flex;
align-items:center;
justify-content:center;
}

.visual-panel{
position:relative;
width:100%;
height:100%;
border-radius:40px;
background:
linear-gradient(
180deg,
rgba(255,255,255,.9),
rgba(255,255,255,.6)
);

border:1px solid rgba(15,23,42,.08);

box-shadow:
0 50px 120px rgba(79,124,255,.18);

overflow:hidden;
backdrop-filter:blur(20px);
}

.visual-panel::before{
content:'';
position:absolute;
inset:0;
background:
radial-gradient(circle at top left,
rgba(79,124,255,.18),
transparent 40%);
}

.hero-image{
position:absolute;
bottom:0;
right:0;
width:100%;
height:100%;
object-fit:cover;
object-position:center;
}

.float-card{
position:absolute;
background:rgba(255,255,255,.82);
backdrop-filter:blur(2px);
border:1px solid rgba(15,23,42,.06);
border-radius:24px;
padding:22px;
box-shadow:var(--shadow-lg);
}

.float-top{
top:40px;
left:20px;
width:260px;
}

.float-bottom{
bottom:60px;
right:20px;
width:280px;
}

.float-card h5{
font-size:34px;
font-weight:800;
letter-spacing:-2px;
margin-bottom:10px;
}

.float-card p{
font-size:14px;
line-height:1.6;
color:#637187;
}

.float-mini{
display:flex;
align-items:center;
gap:14px;
margin-top:18px;
}

.float-icon{
width:44px;
height:44px;
border-radius:14px;
display:flex;
align-items:center;
justify-content:center;
background:rgba(79,124,255,.1);
color:var(--primary);
}

/* =========================================================
   FEATURES
========================================================= */

.features-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:24px;
margin-top:70px;
}

.feature-card{
background:rgba(255,255,255,.75);
backdrop-filter:blur(16px);
border:1px solid rgba(15,23,42,.06);
padding:34px;
border-radius:28px;
transition:.45s ease;
position:relative;
overflow:hidden;
}

.feature-card::before{
content:'';
position:absolute;
inset:0;
background:
linear-gradient(
135deg,
rgba(79,124,255,.08),
transparent 50%
);
opacity:0;
transition:.4s;
}

.feature-card:hover{
transform:translateY(-10px);
box-shadow:var(--shadow-xl);
border-color:rgba(79,124,255,.16);
}

.feature-card:hover::before{
opacity:1;
}

.feature-icon{
width:62px;
height:62px;
border-radius:20px;
display:flex;
align-items:center;
justify-content:center;
background:rgba(79,124,255,.08);
color:var(--primary);
font-size:22px;
margin-bottom:24px;
}

.feature-card h3{
font-size:24px;
font-weight:700;
letter-spacing:-1px;
margin-bottom:14px;
}

.feature-card p{
font-size:15px;
line-height:1.7;
color:#607086;
}

/* =========================================================
   SHOWCASE
========================================================= */

.showcase-grid{
display:grid;
grid-template-columns:1fr 1fr;
gap:80px;
align-items:center;
}

.dashboard{
background:#fff;
border-radius:36px;
padding:28px;
border:1px solid rgba(15,23,42,.06);
box-shadow:var(--shadow-xl);
position:relative;
overflow:hidden;
}

.dashboard-top{
display:grid;
grid-template-columns:repeat(2,1fr);
gap:18px;
margin-bottom:18px;
}

.metric{
background:#f8fbff;
border-radius:22px;
padding:24px;
border:1px solid rgba(15,23,42,.05);
}

.metric h4{
font-size:36px;
font-weight:800;
letter-spacing:-2px;
margin-bottom:10px;
}

.metric p{
font-size:13px;
line-height:1.6;
color:#64748b;
}

.chart{
height:240px;
border-radius:26px;
background:
linear-gradient(
180deg,
rgba(79,124,255,.06),
rgba(79,124,255,.02)
);
border:1px solid rgba(15,23,42,.05);
position:relative;
overflow:hidden;
}

.chart svg{
position:absolute;
inset:0;
width:100%;
height:100%;
}

/* =========================================================
   IMAGE STORY
========================================================= */

.story-grid{
display:grid;
grid-template-columns:.95fr 1.05fr;
gap:80px;
align-items:center;
}

.story-image-wrap{
position:relative;
}

.story-image-panel{
background:#fff;
border-radius:36px;
padding:24px;
border:1px solid rgba(15,23,42,.06);
box-shadow:var(--shadow-xl);
overflow:hidden;
}

.story-image{
width:100%;
display:block;
border-radius:28px;
}

.story-floating{
position:absolute;
right:-40px;
bottom:40px;
background:#fff;
border-radius:24px;
padding:22px;
width:260px;
border:1px solid rgba(15,23,42,.06);
box-shadow:var(--shadow-lg);
}

.story-floating h5{
font-size:32px;
font-weight:800;
margin-bottom:10px;
}

/* =========================================================
   TESTIMONIALS
========================================================= */

.testimonials{
display:grid;
grid-template-columns:repeat(2,1fr);
gap:24px;
margin-top:70px;
}

.testimonial{
background:#fff;
padding:36px;
border-radius:28px;
border:1px solid rgba(15,23,42,.06);
box-shadow:var(--shadow-lg);
transition:.4s;
}

.testimonial:hover{
transform:translateY(-8px);
}

.testimonial p{
font-size:18px;
line-height:1.8;
color:#3d4c61;
}

.user{
display:flex;
align-items:center;
gap:16px;
margin-top:28px;
}

.avatar{
width:54px;
height:54px;
border-radius:50%;
background:var(--gradient);
display:flex;
align-items:center;
justify-content:center;
color:#fff;
font-weight:700;
}

/* =========================================================
   FAQ
========================================================= */

.faq{
max-width:920px;
margin:70px auto 0;
}

.faq-item{
background:#fff;
border:1px solid rgba(15,23,42,.06);
border-radius:24px;
padding:0 28px;
margin-bottom:18px;
overflow:hidden;
transition:.35s;
box-shadow:0 10px 40px rgba(15,23,42,.04);
}

.faq-question{
height:88px;
display:flex;
align-items:center;
justify-content:space-between;
cursor:pointer;
gap:20px;
}

.faq-question h4{
font-size:19px;
font-weight:700;
letter-spacing:-.5px;
}

.faq-icon{
width:42px;
height:42px;
border-radius:14px;
background:#f3f7ff;
display:flex;
align-items:center;
justify-content:center;
transition:.35s;
flex-shrink:0;
}

.faq-answer{
max-height:0;
overflow:hidden;
transition:max-height .45s ease;
}

.faq-answer p{
padding-bottom:28px;
font-size:16px;
line-height:1.8;
color:#607086;
}

.faq-item.active .faq-icon{
transform:rotate(45deg);
background:rgba(79,124,255,.12);
}

/* =========================================================
   CTA
========================================================= */

.cta-box{
position:relative;
padding:100px 60px;
border-radius:42px;
overflow:hidden;
background:
linear-gradient(
135deg,
#ffffff 0%,
#eef4ff 50%,
#f5f2ff 100%
);

border:1px solid rgba(15,23,42,.06);
box-shadow:var(--shadow-xl);
text-align:center;
}

.cta-box::before{
content:'';
position:absolute;
width:500px;
height:500px;
border-radius:50%;
background:rgba(79,124,255,.12);
filter:blur(80px);
top:-200px;
right:-120px;
}

.cta-box h2{
font-size:62px;
line-height:.96;
font-weight:800;
letter-spacing:-3px;
max-width:900px;
margin:auto;
position:relative;
z-index:2;
}

.cta-box p{
margin:26px auto 0;
max-width:720px;
font-size:18px;
line-height:1.8;
color:#5d6b7d;
position:relative;
z-index:2;
}

.cta-box .btn{
margin-top:40px;
position:relative;
z-index:2;
}

/* =========================================================
   FOOTER
========================================================= */

.footer{
padding:80px 0 50px;
}

.footer-grid{
display:grid;
grid-template-columns:2fr 1fr 1fr 1fr;
gap:50px;
padding-top:50px;
border-top:1px solid rgba(15,23,42,.08);
}

.footer-logo img{
height:32px;
margin-bottom:20px;
}

.footer p{
font-size:15px;
line-height:1.8;
color:#627085;
}

.footer-column h4{
font-size:15px;
font-weight:700;
margin-bottom:20px;
}

.footer-column a{
display:block;
text-decoration:none;
color:#627085;
margin-bottom:14px;
font-size:14px;
transition:.3s;
}

.footer-column a:hover{
color:var(--primary);
}

.socials{
display:flex;
gap:14px;
margin-top:24px;
}

.socials a{
width:42px;
height:42px;
border-radius:14px;
display:flex;
align-items:center;
justify-content:center;
background:#fff;
border:1px solid rgba(15,23,42,.06);
color:#0f172a;
text-decoration:none;
transition:.35s;
}

.socials a:hover{
transform:translateY(-4px);
background:var(--gradient);
color:#fff;
}

/* =========================================================
   REVEAL
========================================================= */

.reveal{
opacity:0;
transform:translateY(40px);
transition:
opacity .9s ease,
transform .9s ease;
}

.reveal.visible{
opacity:1;
transform:none;
}

/* =========================================================
   RESPONSIVE
========================================================= */

@media(max-width:1100px){

.hero-grid,
.showcase-grid,
.story-grid{
grid-template-columns:1fr;
}

.hero-visual{
height:620px;
}

.features-grid{
grid-template-columns:1fr 1fr;
}

.footer-grid{
grid-template-columns:1fr 1fr;
}

}

@media(max-width:768px){

.section{
padding:90px 0;
}

.hero{
padding-top:150px;
}

.hero-title{
font-size:52px;
}

.section-title{
font-size:42px;
}

.cta-box h2{
font-size:42px;
}

.features-grid,
.testimonials,
.hero-stats{
grid-template-columns:1fr;
}

.nav-menu{
display:none;
}

.footer-grid{
grid-template-columns:1fr;
}

.float-top,
.float-bottom,
.story-floating{
position:relative;
left:auto;
right:auto;
bottom:auto;
top:auto;
width:100%;
margin-top:20px;
}

.hero-visual{
height:auto;
}

.visual-panel{
min-height:620px;
}

.cta-box{
padding:70px 28px;
}

}