/* ===========================
GOOGLE FONT RESET
=========================== */

*{
margin:0;
padding:0;
box-sizing:border-box;
}

html{
scroll-behavior:smooth;
}

body{

font-family:'Poppins',sans-serif;
background:#050505;
color:#fff;
overflow-x:hidden;
line-height:1.6;

}

img{

max-width:100%;
display:block;

}

a{

text-decoration:none;

}

ul{

list-style:none;

}

/* ===========================
SCROLLBAR
=========================== */

::-webkit-scrollbar{

width:10px;

}

::-webkit-scrollbar-track{

background:#0b0b0b;

}

::-webkit-scrollbar-thumb{

background:#42c17d;
border-radius:20px;

}

/* ===========================
NAVBAR
=========================== */

nav{

position:fixed;

top:0;

left:0;

width:100%;

padding:22px 8%;

display:flex;

justify-content:space-between;

align-items:center;

background:rgba(0,0,0,.45);

backdrop-filter:blur(18px);

z-index:999;

border-bottom:1px solid rgba(255,255,255,.08);

transition:.35s;

}

.logo{

font-size:34px;

font-family:'Cormorant Garamond',serif;

font-weight:700;

color:#42c17d;

}

.logo small{

display:block;

font-size:11px;

letter-spacing:4px;

color:#bbb;

font-family:Poppins;

}

.nav-links{

display:flex;

gap:40px;

}

.nav-links a{

color:white;

font-size:15px;

letter-spacing:1px;

transition:.3s;

}

.nav-links a:hover,

.nav-links a.active{

color:#42c17d;

}

/* ===========================
HERO
=========================== */

.hero{

position:relative;

height:100vh;

background:

linear-gradient(rgba(0,0,0,.55),rgba(0,0,0,.75)),

url("https://images.unsplash.com/photo-1507525428034-b723cf961d3e?w=2000");

background-size:cover;

background-position:center;

display:flex;

justify-content:center;

align-items:center;

text-align:center;

padding:30px;

}

.overlay{

position:absolute;

inset:0;

background:rgba(0,0,0,.25);

}

.hero-content{

position:relative;

z-index:2;

max-width:900px;

}

.hero-subtitle{

letter-spacing:6px;

color:#42c17d;

font-size:14px;

margin-bottom:20px;

}

.hero h1{

font-size:95px;

font-family:'Cormorant Garamond',serif;

font-weight:600;

margin-bottom:20px;

}

.hero h1 span{

color:#42c17d;

font-style:italic;

}

.hero-description{

font-size:21px;

color:#ddd;

max-width:760px;

margin:auto;

line-height:1.9;

}

.hero-buttons{

margin-top:45px;

display:flex;

justify-content:center;

gap:20px;

flex-wrap:wrap;

}

.primary-btn{

padding:18px 45px;

background:#42c17d;

color:black;

font-weight:700;

border-radius:50px;

transition:.3s;

}

.primary-btn:hover{

transform:translateY(-5px);

box-shadow:0 15px 35px rgba(66,193,125,.35);

}

.secondary-btn{

padding:18px 45px;

border:1px solid rgba(255,255,255,.3);

color:white;

border-radius:50px;

transition:.3s;

}

.secondary-btn:hover{

background:white;

color:black;

}

/* ===========================
STATS
=========================== */

.stats{

padding:90px 8%;

display:grid;

grid-template-columns:repeat(4,1fr);

gap:30px;

background:#080808;

}

.stat-card{

background:#111;

padding:45px;

border-radius:20px;

text-align:center;

border:1px solid rgba(255,255,255,.08);

transition:.35s;

}

.stat-card:hover{

transform:translateY(-10px);

border-color:#42c17d;

}

.stat-card h2{

font-size:52px;

color:#42c17d;

margin-bottom:10px;

}

.stat-card p{

color:#bbb;

letter-spacing:2px;

font-size:14px;

}
/* ===========================
SECTION TITLE
=========================== */

.gallery-section{

padding:120px 8%;

background:#050505;

}

.section-title{

text-align:center;

margin-bottom:60px;

}

.section-title p{

color:#42c17d;

letter-spacing:5px;

font-size:14px;

margin-bottom:15px;

}

.section-title h2{

font-size:58px;

font-family:'Cormorant Garamond',serif;

margin-bottom:20px;

}

.section-title span{

display:inline-block;

width:90px;

height:4px;

background:#42c17d;

border-radius:20px;

}

/* ===========================
FILTER BUTTONS
=========================== */

.filter-buttons{

display:flex;

justify-content:center;

flex-wrap:wrap;

gap:18px;

margin-bottom:70px;

}

.filter-btn{

padding:14px 28px;

border:none;

border-radius:50px;

background:#111;

color:white;

cursor:pointer;

font-size:15px;

transition:.35s;

border:1px solid rgba(255,255,255,.08);

}

.filter-btn:hover{

background:#42c17d;

color:#000;

transform:translateY(-4px);

}

.filter-btn.active{

background:#42c17d;

color:black;

font-weight:600;

}

/* ===========================
GALLERY GRID
=========================== */

.gallery-grid{

display:grid;

grid-template-columns:repeat(auto-fit,minmax(350px,1fr));

gap:35px;

}

/* ===========================
MEMORY CARD
=========================== */

.memory-card{

background:#111;

border-radius:24px;

overflow:hidden;

border:1px solid rgba(255,255,255,.08);

transition:.45s;

box-shadow:0 15px 35px rgba(0,0,0,.25);

}

.memory-card:hover{

transform:translateY(-12px);

box-shadow:0 25px 50px rgba(66,193,125,.18);

border-color:#42c17d;

}

/* ===========================
IMAGE
=========================== */

.memory-image{

position:relative;

overflow:hidden;

height:280px;

}

.memory-image img{

width:100%;

height:100%;

object-fit:cover;

transition:.6s;

}

.memory-card:hover img{

transform:scale(1.08);

}

.memory-overlay{

position:absolute;

inset:0;

display:flex;

align-items:flex-start;

justify-content:flex-end;

padding:18px;

background:linear-gradient(to top,rgba(0,0,0,.35),transparent);

}

.destination-tag{

background:#42c17d;

color:#000;

padding:8px 16px;

border-radius:30px;

font-size:13px;

font-weight:600;

}

/* ===========================
CARD CONTENT
=========================== */

.memory-content{

padding:28px;

}

.memory-top{

display:flex;

justify-content:space-between;

align-items:center;

margin-bottom:18px;

}

.memory-top h3{

font-size:24px;

font-family:'Cormorant Garamond',serif;

}

.rating{

color:#FFD54F;

font-size:16px;

}

.memory-content p{

color:#cfcfcf;

line-height:1.8;

margin-bottom:28px;

}

/* ===========================
FOOTER OF CARD
=========================== */

.memory-footer{

display:flex;

justify-content:space-between;

align-items:center;

}

.traveller{

display:flex;

align-items:center;

gap:14px;

}

.traveller img{

width:52px;

height:52px;

border-radius:50%;

object-fit:cover;

border:2px solid #42c17d;

}

.traveller h4{

font-size:16px;

margin-bottom:4px;

}

.traveller span{

font-size:13px;

color:#aaa;

}

.likes{

background:#181818;

padding:10px 16px;

border-radius:30px;

font-size:14px;

transition:.3s;

cursor:pointer;

}

.likes:hover{

background:#42c17d;

color:#000;

}
/* ===========================
UPLOAD SECTION
=========================== */

.upload-section{

padding:120px 8%;

background:#080808;

}

.upload-wrapper{

display:grid;

grid-template-columns:1fr 1fr;

gap:80px;

align-items:center;

}

.upload-left .small-title{

color:#42c17d;

letter-spacing:4px;

font-size:14px;

margin-bottom:15px;

}

.upload-left h2{

font-size:58px;

font-family:'Cormorant Garamond',serif;

margin-bottom:25px;

line-height:1.2;

}

.upload-left h2 span{

color:#42c17d;

font-style:italic;

}

.upload-left p{

color:#cfcfcf;

line-height:1.9;

margin-bottom:40px;

}

.feature-list{

display:flex;

flex-direction:column;

gap:25px;

}

.feature{

display:flex;

align-items:center;

gap:18px;

background:#111;

padding:18px;

border-radius:18px;

border:1px solid rgba(255,255,255,.08);

transition:.35s;

}

.feature:hover{

transform:translateX(8px);

border-color:#42c17d;

}

.feature-icon{

width:60px;

height:60px;

display:flex;

justify-content:center;

align-items:center;

font-size:26px;

background:#42c17d;

border-radius:50%;

color:#000;

flex-shrink:0;

}

.feature h3{

margin-bottom:6px;

font-size:18px;

}

.feature p{

margin:0;

font-size:14px;

color:#aaa;

line-height:1.5;

}

/* ===========================
UPLOAD FORM
=========================== */

.upload-right{

background:rgba(255,255,255,.05);

backdrop-filter:blur(20px);

padding:40px;

border-radius:28px;

border:1px solid rgba(255,255,255,.08);

box-shadow:0 20px 60px rgba(0,0,0,.35);

}

.form-group{

margin-bottom:24px;

}

.form-group label{

display:block;

margin-bottom:10px;

font-weight:500;

color:#42c17d;

}

.form-group input,

.form-group textarea,

.form-group select{

width:100%;

padding:16px 18px;

border-radius:14px;

background:#151515;

border:1px solid #2c2c2c;

color:white;

font-size:15px;

transition:.3s;

}

.form-group input:focus,

.form-group textarea:focus,

.form-group select:focus{

outline:none;

border-color:#42c17d;

box-shadow:0 0 15px rgba(66,193,125,.2);

}

.form-group textarea{

resize:vertical;

min-height:140px;

}

#charCount{

display:block;

text-align:right;

margin-top:8px;

font-size:13px;

color:#888;

}

/* ===========================
FILE INPUT
=========================== */

input[type=file]{

padding:14px;

background:#101010;

cursor:pointer;

}

input[type=file]::file-selector-button{

background:#42c17d;

border:none;

padding:10px 18px;

border-radius:10px;

cursor:pointer;

font-weight:600;

margin-right:15px;

}

/* ===========================
IMAGE PREVIEW
=========================== */

.image-preview{

margin-top:20px;

border-radius:18px;

overflow:hidden;

background:#111;

display:flex;

justify-content:center;

align-items:center;

min-height:240px;

border:2px dashed rgba(255,255,255,.12);

}

.image-preview img{

display:none;

width:100%;

height:320px;

object-fit:cover;

}

/* ===========================
UPLOAD PROGRESS
=========================== */

.progress-container{

width:100%;

height:10px;

background:#222;

border-radius:20px;

margin:25px 0;

overflow:hidden;

}

.progress-bar{

height:100%;

width:0%;

background:#42c17d;

transition:.35s;

}

/* ===========================
UPLOAD BUTTON
=========================== */

.upload-btn{

width:100%;

padding:18px;

background:#42c17d;

color:#000;

border:none;

border-radius:16px;

font-size:16px;

font-weight:700;

cursor:pointer;

transition:.35s;

}

.upload-btn:hover{

transform:translateY(-4px);

box-shadow:0 15px 30px rgba(66,193,125,.35);

}
/* ===========================
FOOTER
=========================== */

.footer{

background:#040404;

padding:90px 8% 30px;

border-top:1px solid rgba(255,255,255,.08);

}

.footer-container{

display:grid;

grid-template-columns:2fr 1fr 1fr 1.5fr;

gap:60px;

margin-bottom:60px;

}

.footer-col h2{

font-family:'Cormorant Garamond',serif;

font-size:42px;

color:#42c17d;

margin-bottom:20px;

}

.footer-col h3{

margin-bottom:20px;

font-size:22px;

color:#42c17d;

}

.footer-col p{

color:#bdbdbd;

line-height:1.8;

margin-bottom:15px;

}

.footer-col ul{

padding:0;

}

.footer-col ul li{

margin-bottom:14px;

}

.footer-col ul li a{

color:#bdbdbd;

transition:.3s;

}

.footer-col ul li a:hover{

color:#42c17d;

padding-left:8px;

}

.footer-bottom{

text-align:center;

padding-top:30px;

border-top:1px solid rgba(255,255,255,.08);

color:#888;

font-size:14px;

}

/* ===========================
BACK TO TOP
=========================== */

.back-to-top{

position:fixed;

right:30px;

bottom:30px;

width:55px;

height:55px;

border:none;

border-radius:50%;

background:#42c17d;

color:#000;

font-size:22px;

font-weight:bold;

cursor:pointer;

display:flex;

align-items:center;

justify-content:center;

box-shadow:0 15px 35px rgba(66,193,125,.35);

transition:.35s;

opacity:0;

visibility:hidden;

z-index:999;

}

.back-to-top.show{

opacity:1;

visibility:visible;

}

.back-to-top:hover{

transform:translateY(-8px) rotate(360deg);

}

/* ===========================
ANIMATIONS
=========================== */

.memory-card,
.stat-card,
.feature,
.upload-right{

animation:fadeUp .8s ease both;

}

@keyframes fadeUp{

from{

opacity:0;

transform:translateY(40px);

}

to{

opacity:1;

transform:translateY(0);

}

}

.primary-btn,
.secondary-btn,
.upload-btn,
.filter-btn{

transition:all .35s ease;

}

.memory-image img{

transition:transform .6s ease;

}

.memory-card:hover .memory-image img{

transform:scale(1.1);

}

.memory-card:hover{

box-shadow:0 30px 60px rgba(66,193,125,.2);

}

/* ===========================
RESPONSIVE
=========================== */

@media(max-width:1200px){

.hero h1{

font-size:72px;

}

.footer-container{

grid-template-columns:repeat(2,1fr);

}

}

@media(max-width:992px){

.stats{

grid-template-columns:repeat(2,1fr);

}

.upload-wrapper{

grid-template-columns:1fr;

gap:50px;

}

.hero h1{

font-size:60px;

}

.section-title h2{

font-size:46px;

}

.upload-left h2{

font-size:46px;

}

}

@media(max-width:768px){

nav{

padding:18px 5%;

}

.nav-links{

display:none;

}

.hero{

padding:20px;

}

.hero h1{

font-size:46px;

}

.hero-description{

font-size:17px;

}

.hero-buttons{

flex-direction:column;

align-items:center;

}

.primary-btn,

.secondary-btn{

width:240px;

text-align:center;

}

.stats{

grid-template-columns:1fr;

}

.gallery-grid{

grid-template-columns:1fr;

}

.filter-buttons{

gap:10px;

}

.filter-btn{

padding:10px 18px;

font-size:13px;

}

.footer-container{

grid-template-columns:1fr;

text-align:center;

}

.footer-col{

margin-bottom:20px;

}

.back-to-top{

right:18px;

bottom:18px;

}

}

@media(max-width:480px){

.hero h1{

font-size:38px;

}

.logo{

font-size:28px;

}

.section-title h2{

font-size:36px;

}

.upload-left h2{

font-size:36px;

}

.upload-right{

padding:25px;

}

.stat-card{

padding:30px;

}

.memory-content{

padding:20px;

}

}
/* =========================================================
PART 5 - PREMIUM FINISH
=========================================================*/

/* Beautiful glass effect */

.memory-card{
    position:relative;
    overflow:hidden;
}

.memory-card::before{
    content:"";
    position:absolute;
    top:0;
    left:-120%;
    width:60%;
    height:100%;
    background:linear-gradient(
        90deg,
        transparent,
        rgba(255,255,255,.15),
        transparent
    );
    transform:skewX(-25deg);
    transition:.8s;
    z-index:5;
    pointer-events:none;
}

.memory-card:hover::before{
    left:160%;
}

/* Floating cards */

.memory-card{
    animation:floatCard 5s ease-in-out infinite;
}

.memory-card:nth-child(2){
    animation-delay:.5s;
}

.memory-card:nth-child(3){
    animation-delay:1s;
}

.memory-card:nth-child(4){
    animation-delay:1.5s;
}

.memory-card:nth-child(5){
    animation-delay:2s;
}

.memory-card:nth-child(6){
    animation-delay:2.5s;
}

@keyframes floatCard{
    0%{
        transform:translateY(0);
    }

    50%{
        transform:translateY(-8px);
    }

    100%{
        transform:translateY(0);
    }
}

/* Better image */

.memory-image{
    background:#111;
}

.memory-image img{
    filter:brightness(.95);
    transition:.6s;
}

.memory-card:hover img{
    filter:brightness(1.05);
}

/* Destination badge */

.destination-tag{
    box-shadow:0 8px 25px rgba(66,193,125,.45);
}

/* Like button */

.likes{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    font-weight:600;
}

.likes:hover{
    transform:scale(1.08);
}

/* Upload form hover */

.upload-right{
    transition:.4s;
}

.upload-right:hover{
    transform:translateY(-10px);
    box-shadow:0 30px 70px rgba(66,193,125,.18);
}

/* Inputs */

.form-group input,
.form-group textarea,
.form-group select{
    transition:.35s;
}

.form-group input:hover,
.form-group textarea:hover,
.form-group select:hover{
    border-color:#42c17d;
}

/* Hero animation */

.hero-content{
    animation:heroFade 1.2s ease;
}

@keyframes heroFade{
    from{
        opacity:0;
        transform:translateY(60px);
    }

    to{
        opacity:1;
        transform:translateY(0);
    }
}

/* Gallery spacing */

.gallery-grid{
    margin-top:50px;
}

/* Premium shadows */

.stat-card,
.memory-card,
.upload-right,
.feature{
    box-shadow:0 15px 35px rgba(0,0,0,.28);
}

/* Green glow */

.primary-btn:hover,
.upload-btn:hover{
    box-shadow:
        0 0 20px rgba(66,193,125,.25),
        0 0 50px rgba(66,193,125,.15);
}

/* Smooth page */

body{
    animation:pageLoad .6s ease;
}

@keyframes pageLoad{
    from{
        opacity:0;
    }

    to{
        opacity:1;
    }
}

/* Selection */

::selection{
    background:#42c17d;
    color:#000;
}

/* Better focus */

button:focus,
input:focus,
textarea:focus,
select:focus{
    outline:none;
}

/* Prevent oversized images */

.memory-image img,
.image-preview img{
    object-fit:cover;
}

/* Nice spacing */

section{
    position:relative;
}

/* End of CSS */



