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

html{
scroll-behavior:smooth;
}

body{

font-family:'Manrope',sans-serif;

background:#09090b;

color:white;

overflow-x:hidden;

}

.container{

width:min(1200px,90%);

margin:auto;

}

header{

position:fixed;

width:100%;

top:0;

left:0;

z-index:999;

backdrop-filter:blur(16px);

background:rgba(0,0,0,.35);

border-bottom:1px solid rgba(255,255,255,.08);

}

header .container{

height:80px;

display:flex;

align-items:center;

justify-content:space-between;

}

.logo{

font-size:28px;

font-weight:800;

letter-spacing:2px;

}

.logo span{

color:#ff2d75;

}

nav{

display:flex;

gap:40px;

}

nav a{

color:white;

text-decoration:none;

font-weight:500;

transition:.35s;

}

nav a:hover{

color:#ff2d75;

}

.hero{

height:100vh;

position:relative;

display:flex;

justify-content:center;

align-items:center;

overflow:hidden;

}

.background{

position:absolute;

inset:0;

background-image:url("images/hero.jpg");

background-size:cover;

background-position:center;

transform:scale(1.15);

animation:zoom 18s linear infinite alternate;

}

.gradient{

position:absolute;

inset:0;

background:

linear-gradient(

180deg,

rgba(0,0,0,.35),

rgba(0,0,0,.7)

);

}

.hero-content{

position:relative;

z-index:5;

text-align:center;

max-width:900px;

}

.hero h1{

font-size:82px;

font-weight:800;

line-height:1;

margin-bottom:25px;

}

.hero p{

font-size:22px;

opacity:.9;

margin-bottom:40px;

}

.buttons{

display:flex;

justify-content:center;

gap:20px;

flex-wrap:wrap;

}

.btn{

padding:18px 42px;

background:#ff2d75;

border-radius:60px;

color:white;

text-decoration:none;

transition:.35s;

}

.btn:hover{

transform:translateY(-5px);

box-shadow:0 20px 40px rgba(255,45,117,.4);

}

.ghost{

background:transparent;

border:1px solid white;

}

.scroll{

position:absolute;

bottom:30px;

left:50%;

transform:translateX(-50%);

font-size:40px;

animation:bounce 1.6s infinite;

}

.about{

padding:120px 0;

text-align:center;

}

.about h2{

font-size:54px;

margin-bottom:30px;

}

.about p{

font-size:20px;

line-height:1.8;

max-width:850px;

margin:auto;

opacity:.8;

}

.reveal{

opacity:0;

transform:translateY(60px);

transition:1s;

}

.reveal.active{

opacity:1;

transform:none;

}

.burger{

display:none;

flex-direction:column;

gap:6px;

cursor:pointer;

}

.burger span{

width:30px;

height:3px;

background:white;

}

#preloader{

position:fixed;

inset:0;

background:#09090b;

display:flex;

justify-content:center;

align-items:center;

z-index:99999;

transition:1s;

}

#preloader span{

width:60px;

height:60px;

border-radius:50%;

border:4px solid rgba(255,255,255,.2);

border-top-color:#ff2d75;

animation:spin 1s linear infinite;

}

@keyframes spin{

100%{transform:rotate(360deg);}

}

@keyframes bounce{

50%{

transform:translate(-50%,12px);

}

}

@keyframes zoom{

100%{

transform:scale(1);

}

}

@media(max-width:900px){

nav{

display:none;

}

.burger{

display:flex;

}

.hero h1{

font-size:54px;

}

.about h2{

font-size:42px;

}

}

.title{

text-align:center;

margin-bottom:70px;

}

.title span{

letter-spacing:4px;

color:#ff2d75;

font-size:14px;

}

.title h2{

font-size:54px;

margin-top:15px;

}

.directions{

padding:120px 0;

position:relative;

overflow:hidden;

}

.directions::before{

content:"";

position:absolute;

width:600px;

height:600px;

background:#ff2d75;

filter:blur(250px);

opacity:.08;

left:-200px;

top:-100px;

}

.cards{

display:grid;

grid-template-columns:repeat(auto-fit,minmax(320px,1fr));

gap:35px;

}

.card{

background:rgba(255,255,255,.05);

border:1px solid rgba(255,255,255,.08);

border-radius:24px;

overflow:hidden;

transition:.45s;

backdrop-filter:blur(15px);

}

.card:hover{

transform:translateY(-15px);

box-shadow:0 30px 60px rgba(0,0,0,.35);

}

.card img{

width:100%;

height:320px;

object-fit:cover;

transition:.6s;

}

.card:hover img{

transform:scale(1.08);

}

.info{

padding:30px;

}

.info h3{

font-size:28px;

margin-bottom:15px;

}

.info p{

opacity:.75;

line-height:1.7;

}

.gallery{

padding:120px 0;

}

.grid{

display:grid;

grid-template-columns:repeat(auto-fit,minmax(280px,1fr));

gap:20px;

}

.grid img{

width:100%;

height:300px;

object-fit:cover;

cursor:pointer;

border-radius:18px;

transition:.45s;

}

.grid img:hover{

transform:scale(1.04);

}

#lightbox{

position:fixed;

inset:0;

background:rgba(0,0,0,.95);

display:none;

justify-content:center;

align-items:center;

z-index:99999;

}

#lightbox img{

max-width:90%;

max-height:90%;

border-radius:15px;

animation:zoomImage .4s;

}

#close{

position:absolute;

top:30px;

right:45px;

font-size:50px;

cursor:pointer;

color:white;

}

@keyframes zoomImage{

from{

opacity:0;

transform:scale(.8);

}

to{

opacity:1;

transform:scale(1);

}

}

.stats{

padding:120px 0;

background:#111;

}

.stats-grid{

display:grid;

grid-template-columns:repeat(auto-fit,minmax(180px,1fr));

gap:40px;

text-align:center;

}

.stat span{

font-size:64px;

font-weight:800;

color:#ff2d75;

}

.stat p{

margin-top:15px;

opacity:.7;

}

.teachers{

padding:120px 0;

}

.teacher-grid{

display:grid;

grid-template-columns:repeat(auto-fit,minmax(320px,1fr));

gap:35px;

}

.teacher{

overflow:hidden;

border-radius:20px;

background:#161616;

transition:.4s;

}

.teacher:hover{

transform:translateY(-10px);

}

.teacher img{

width:100%;

height:420px;

object-fit:cover;

transition:.6s;

}

.teacher:hover img{

transform:scale(1.08);

}

.teacher-info{

padding:25px;

text-align:center;

}

.teacher-info p{

color:#ff2d75;

margin-top:10px;

}

.schedule{

padding:120px 0;

}

table{

width:100%;

border-collapse:collapse;

background:#151515;

overflow:hidden;

border-radius:20px;

}

th{

background:#ff2d75;

padding:22px;

}

td{

padding:22px;

text-align:center;

border-bottom:1px solid rgba(255,255,255,.08);

}

tr:hover{

background:#202020;

}

.reviews{

padding:120px 0;

text-align:center;

}

.slider{

max-width:700px;

margin:auto;

position:relative;

}

.slide{

display:none;

padding:50px;

background:#181818;

border-radius:25px;

}

.slide.active{

display:block;

animation:fade .6s;

}

.slide p{

font-size:22px;

margin:30px 0;

line-height:1.7;

}

@keyframes fade{

from{

opacity:0;

transform:translateY(20px);

}

to{

opacity:1;

transform:none;

}

}

.mobile-menu{

position:fixed;

top:80px;

right:-100%;

width:280px;

height:calc(100vh - 80px);

background:#0e0e10;

display:flex;

flex-direction:column;

padding:40px;

gap:25px;

transition:.5s;

z-index:1000;

}

.mobile-menu.active{

right:0;

}

.mobile-menu a{

color:white;

text-decoration:none;

font-size:20px;

}

.contact{

padding:120px 0;

}

form{

max-width:700px;

margin:auto;

display:flex;

flex-direction:column;

gap:20px;

}

input,
select,
textarea{

background:#171717;

border:none;

padding:18px;

color:white;

border-radius:15px;

font-size:17px;

}

input:focus,
textarea:focus,
select:focus{

outline:2px solid #ff2d75;

}

button{

padding:18px;

background:#ff2d75;

border:none;

color:white;

font-size:18px;

border-radius:60px;

cursor:pointer;

transition:.35s;

}

button:hover{

transform:translateY(-5px);

box-shadow:0 20px 40px rgba(255,45,117,.4);

}

footer{

padding:60px 0;

background:#050505;

border-top:1px solid rgba(255,255,255,.05);

}

.footer{

display:flex;

justify-content:space-between;

align-items:center;

flex-wrap:wrap;

gap:30px;

}

.footer a{

margin-left:20px;

text-decoration:none;

color:white;

opacity:.8;

transition:.3s;

}

.footer a:hover{

color:#ff2d75;

}

.blob{

position:fixed;

border-radius:50%;

filter:blur(130px);

opacity:.18;

z-index:-1;

animation:move 15s infinite alternate;

}

.blob1{

width:400px;

height:400px;

background:#ff2d75;

top:-150px;

left:-100px;

}

.blob2{

width:350px;

height:350px;

background:#6c63ff;

bottom:-100px;

right:-120px;

animation-duration:18s;

}

.blob3{

width:250px;

height:250px;

background:#00c2ff;

top:45%;

left:55%;

animation-duration:12s;

}

@keyframes move{

to{

transform:

translate(100px,-80px)

scale(1.2);

}

}
