/* ==========================================
   TONI Studio
   Modern Landing Page
========================================== */

:root{

    --bg:#09090B;
    --bg-light:#111114;

    --primary:#4F8CFF;
    --primary-hover:#70A5FF;

    --text:#FFFFFF;
    --text-light:#B6B6BE;

    --card:#141417;

    --border:rgba(255,255,255,.08);

    --radius:22px;

    --shadow:0 20px 60px rgba(0,0,0,.45);

}

/* ========================================== */

*{

    margin:0;
    padding:0;
    box-sizing:border-box;

}

html{

    scroll-behavior:smooth;

}

body{

    font-family:"Inter",sans-serif;

    background:var(--bg);

    color:var(--text);

    overflow-x:hidden;

    line-height:1.7;

}

/* ========================================== */

img{

    width:100%;

    display:block;

}

a{

    text-decoration:none;

    color:inherit;

}

ul{

    list-style:none;

}

.container{

    width:min(1200px,90%);

    margin:auto;

}

section{

    padding:120px 0;

}

/* ========================================== */
/* Scrollbar */
/* ========================================== */

::-webkit-scrollbar{

    width:10px;

}

::-webkit-scrollbar-track{

    background:#111;

}

::-webkit-scrollbar-thumb{

    background:var(--primary);

    border-radius:20px;

}
/* ========================================== */
/* Navigation */
/* ========================================== */

header{

    position:fixed;

    width:100%;

    top:0;

    left:0;

    z-index:1000;

    backdrop-filter:blur(16px);

    background:rgba(9,9,11,.75);

    border-bottom:1px solid var(--border);

}

.navbar{

    width:min(1200px,90%);

    margin:auto;

    height:90px;

    display:flex;

    align-items:center;

    justify-content:space-between;

}

.logo{

    font-size:1.8rem;

    font-weight:800;

}

.logo span{

    color:var(--primary);

}

.navbar ul{

    display:flex;

    gap:40px;

}

.navbar ul a{

    color:var(--text-light);

    transition:.3s;

}

.navbar ul a:hover{

    color:white;

}

.button{

    background:var(--primary);

    padding:15px 28px;

    border-radius:999px;

    font-weight:600;

    transition:.3s;

}

.button:hover{

    background:var(--primary-hover);

    transform:translateY(-3px);

}
/* ========================================== */
/* Hero */
/* ========================================== */

.hero{

    width:min(1200px,90%);

    margin:auto;

    min-height:100vh;

    display:grid;

    grid-template-columns:1fr 450px;

    align-items:center;

    gap:80px;

}

.hero-left span{

    color:var(--primary);

    letter-spacing:3px;

    font-size:.9rem;

}

.hero h1{

    font-size:clamp(3rem,8vw,6rem);

    line-height:1.05;

    margin:25px 0;

}

.hero p{

    color:var(--text-light);

    max-width:650px;

}

.hero-buttons{

    margin-top:45px;

    display:flex;

    gap:20px;

}

.primary{

    background:var(--primary);

    padding:18px 34px;

    border-radius:999px;

    transition:.3s;

    font-weight:700;

}

.primary:hover{

    background:var(--primary-hover);

}

.secondary{

    border:1px solid var(--border);

    padding:18px 34px;

    border-radius:999px;

}

.secondary:hover{

    background:white;

    color:black;

}
/* ==========================================
   Hero Card
========================================== */

.hero-right{

    display:flex;

    justify-content:center;

    align-items:center;

}

.card{

    width:100%;
    max-width:380px;

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

    backdrop-filter:blur(20px);

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

    border-radius:30px;

    padding:35px;

    text-align:center;

    box-shadow:var(--shadow);

    transition:.35s;

}

.card:hover{

    transform:translateY(-10px);

}

.card img{

    width:180px;

    height:180px;

    margin:auto;

    border-radius:50%;

    object-fit:cover;

    border:4px solid var(--primary);

    margin-bottom:25px;

}

.card h2{

    font-size:2rem;

    margin-bottom:10px;

}

.card p{

    color:var(--text-light);

}
/* ==========================================
   Section Header
========================================== */

.section-header{

    text-align:center;

    margin-bottom:70px;

}

.section-header span{

    color:var(--primary);

    font-weight:700;

    letter-spacing:2px;

    text-transform:uppercase;

    font-size:.9rem;

}

.section-header h2{

    font-size:clamp(2rem,5vw,3.5rem);

    margin-top:15px;

}

.section-header p{

    max-width:700px;

    margin:25px auto 0;

    color:var(--text-light);

}
/* ==========================================
   About
========================================== */

.about-grid{

    display:grid;

    grid-template-columns:420px 1fr;

    gap:80px;

    align-items:center;

}

.about-image img{

    border-radius:25px;

    box-shadow:var(--shadow);

}

.about-content h3{

    font-size:2rem;

    margin-bottom:25px;

}

.about-content p{

    color:var(--text-light);

    margin-bottom:25px;

}
/* ==========================================
   Skills
========================================== */

.skills{

    display:flex;

    flex-wrap:wrap;

    gap:15px;

    margin-top:40px;

}

.skills span{

    background:var(--card);

    border:1px solid var(--border);

    padding:12px 22px;

    border-radius:999px;

    transition:.3s;

}

.skills span:hover{

    background:var(--primary);

    transform:translateY(-3px);

}
/* ==========================================
   Aurora Background
========================================== */

body::before{

    content:"";

    position:fixed;

    width:700px;

    height:700px;

    background:var(--primary);

    filter:blur(220px);

    opacity:.12;

    top:-250px;

    right:-250px;

    z-index:-2;

}

body::after{

    content:"";

    position:fixed;

    width:600px;

    height:600px;

    background:#8B5CF6;

    filter:blur(250px);

    opacity:.08;

    bottom:-250px;

    left:-250px;

    z-index:-2;

}
/* ==========================================
   SERVICES
========================================== */

.services-grid{

    display:grid;

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

    gap:30px;

}

.service-card{

    background:var(--card);

    border:1px solid var(--border);

    border-radius:var(--radius);

    padding:40px;

    transition:.35s;

    cursor:pointer;

}

.service-card:hover{

    transform:translateY(-10px);

    border-color:var(--primary);

}

.service-card i{

    font-size:2.5rem;

    color:var(--primary);

    margin-bottom:25px;

}

.service-card h3{

    margin-bottom:15px;

    font-size:1.4rem;

}

.service-card p{

    color:var(--text-light);

}
/* ==========================================
   PORTFOLIO
========================================== */

.portfolio-grid{

    display:grid;

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

    gap:35px;

}

.portfolio-card{

    overflow:hidden;

    border-radius:25px;

    background:var(--card);

    border:1px solid var(--border);

    transition:.35s;

}

.portfolio-card:hover{

    transform:translateY(-10px);

}

.portfolio-card img{

    height:240px;

    object-fit:cover;

    transition:.4s;

}

.portfolio-card:hover img{

    transform:scale(1.08);

}

.portfolio-info{

    padding:30px;

}

.portfolio-info h3{

    margin-bottom:10px;

}

.portfolio-info p{

    color:var(--text-light);

    margin-bottom:20px;

}

.portfolio-info a{

    color:var(--primary);

    font-weight:600;

}
/* ==========================================
   DJ SECTION
========================================== */

.dj{

    background:var(--bg-light);

}

.dj-grid{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:70px;

    align-items:center;

}

.dj-grid img{

    border-radius:25px;

    box-shadow:var(--shadow);

}

.section-small{

    color:var(--primary);

    text-transform:uppercase;

    letter-spacing:2px;

    font-weight:700;

}

.dj h2{

    font-size:3rem;

    margin:20px 0;

}

.dj p{

    color:var(--text-light);

    margin-bottom:40px;

}
/* ==========================================
   CONTACT
========================================== */

.contact-form{

    max-width:700px;

    margin:auto;

    display:flex;

    flex-direction:column;

    gap:20px;

}

.contact-form input,

.contact-form textarea{

    background:var(--card);

    border:1px solid var(--border);

    color:white;

    padding:20px;

    border-radius:18px;

    font-size:1rem;

    outline:none;

}

.contact-form input:focus,

.contact-form textarea:focus{

    border-color:var(--primary);

}

.contact-form textarea{

    resize:vertical;

}

.contact-form button{

    border:none;

    cursor:pointer;

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

footer{

    border-top:1px solid var(--border);

    margin-top:120px;

}

.footer{

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:60px 0;

    gap:40px;

    flex-wrap:wrap;

}

.footer h2 span{

    color:var(--primary);

}

.footer-links{

    display:flex;

    gap:30px;

}

.footer-links a{

    color:var(--text-light);

}

.footer-links a:hover{

    color:white;

}

.footer-social{

    display:flex;

    gap:18px;

}

.footer-social a{

    width:48px;

    height:48px;

    background:var(--card);

    border-radius:50%;

    display:flex;

    justify-content:center;

    align-items:center;

    transition:.3s;

}

.footer-social a:hover{

    background:var(--primary);

}

.copyright{

    text-align:center;

    padding:25px;

    border-top:1px solid var(--border);

    color:var(--text-light);

}
/* ==========================================
   Scroll Progress Bar
========================================== */

#progress-bar{

    position:fixed;

    top:0;
    left:0;

    width:0%;

    height:4px;

    background:linear-gradient(90deg,#4F8CFF,#8B5CF6);

    z-index:9999;

}

/* ==========================================
   Scroll Top Button
========================================== */

#scrollTopBtn{

    position:fixed;

    bottom:30px;

    right:30px;

    width:55px;

    height:55px;

    border:none;

    border-radius:50%;

    background:var(--primary);

    color:white;

    font-size:1.2rem;

    cursor:pointer;

    display:none;

    box-shadow:var(--shadow);

    transition:.3s;

}

#scrollTopBtn:hover{

    transform:translateY(-5px);

}

/* ==========================
   MOBILE
========================== */

@media (max-width: 768px) {

header{
    padding:0 20px;
    height:70px;
}

.logo{
    font-size:28px;
}

nav{
    display:none;
}

.hero{
    padding:0 20px;
    text-align:center;
}

.hero h1{
    font-size:52px;
    line-height:1;
}

.hero p{
    font-size:18px;
}

.hero-buttons{
    flex-direction:column;
    gap:15px;
}

.hero-buttons a{
    width:100%;
    text-align:center;
}

.container{
    width:92%;
}

.about,
.dj-grid,
.portfolio-grid,
.contact-grid,
.services-grid{

    display:flex;
    flex-direction:column;
    gap:40px;

}

.about img,
.dj-grid img{
    width:100%;
    height:auto;
}

h2{
    font-size:34px;
}

p{
    font-size:16px;
}

.primary{
    width:100%;
    text-align:center;
}

footer{
    text-align:center;
}

}
#success-message{

    display:none;

    background:#16a34a;

    color:white;

    padding:18px;

    border-radius:15px;

    margin-bottom:25px;

    text-align:center;

    font-weight:600;

}
/* ==========================================
   Toast Notification
========================================== */

#toast{

    position:fixed;

    top:30px;

    right:30px;

    background:#16181d;

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

    border-left:5px solid #22c55e;

    color:white;

    padding:18px 24px;

    border-radius:18px;

    display:flex;

    align-items:center;

    gap:15px;

    box-shadow:0 20px 60px rgba(0,0,0,.45);

    z-index:99999;

    opacity:0;

    transform:translateX(120%);

    transition:.5s;

}

#toast.show{

    opacity:1;

    transform:translateX(0);

}

#toast i{

    color:#22c55e;

    font-size:1.4rem;

}