@import url('https://fonts.googleapis.com/css2?family=Great+Vibes&family=Cormorant+Garamond:wght@300;400;500;600;700&display=swap');

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

body{

    font-family:'Cormorant Garamond',serif;

    background:linear-gradient(135deg,#fff7fa,#ffe8ef,#fff);

    min-height:100vh;

    overflow-x:hidden;

    color:#444;

}

.background{

    position:fixed;

    width:100%;

    height:100%;

    top:0;

    left:0;

    background:
    radial-gradient(circle at top right,#ffd7e6 0%,transparent 30%),
    radial-gradient(circle at bottom left,#ffe9c9 0%,transparent 35%);

    z-index:-2;

}

.container{

    width:95%;

    max-width:1300px;

    margin:auto;

    padding:60px 20px;

}

.hero{

    text-align:center;

    margin-bottom:60px;

}

.hero h1{

    font-family:'Great Vibes',cursive;

    font-size:75px;

    color:#b61d62;

    margin-bottom:20px;

}

.subtitle{

    font-size:28px;

    color:#555;

    max-width:800px;

    margin:auto;

    line-height:1.8;

}

.hint{

    margin-top:30px;

    color:#b61d62;

    font-size:22px;

}

.cards{

    display:grid;

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

    gap:30px;

}

.card{

    position:relative;

    height:230px;

    cursor:pointer;

    perspective:1200px;

}

.card .front,
.card .back{

    position:absolute;

    width:100%;

    height:100%;

    border-radius:22px;

    transition:1s;

    backface-visibility:hidden;

    display:flex;

    justify-content:center;

    align-items:center;

    flex-direction:column;

    text-align:center;

    padding:25px;

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

}

.front{

    background:white;

}

.front:hover{

    transform:translateY(-8px);

}

.front h3{

    margin-top:15px;

    font-size:28px;

    color:#b61d62;

}

.front{

    font-size:60px;

}

.back{

    transform:rotateY(180deg);

    background:linear-gradient(145deg,#fff,#ffe8f1);

}

.back p{

    font-size:26px;

    line-height:1.6;

}

.card.flipped .front{

    transform:rotateY(180deg);

}

.card.flipped .back{

    transform:rotateY(360deg);

}

.special{

    grid-column:span 2;

    height:320px;

}

.special .back{

    background:linear-gradient(135deg,#ffdce9,#fff5f9);

}

.special h2{

    font-size:60px;

    margin-bottom:15px;

}

.special p{

    font-size:27px;

    margin:8px 0;

}

.rose{

    font-size:45px;

    margin-top:15px;

}

footer{

    text-align:center;

    margin-top:70px;

    font-size:22px;

    color:#999;

}

/* Flores cayendo */

.flower{

    position:fixed;

    top:-50px;

    font-size:28px;

    animation:fall linear infinite;

    pointer-events:none;

    opacity:.8;

    z-index:-1;

}

@keyframes fall{

    0%{

        transform:translateY(-50px) rotate(0deg);

    }

    100%{

        transform:translateY(110vh) rotate(360deg);

    }

}

/* Brillo de las tarjetas */

.card:hover{

    filter:drop-shadow(0 15px 30px rgba(255,105,180,.25));

}

/* Responsive */

@media(max-width:900px){

.hero h1{

font-size:58px;

}

.subtitle{

font-size:22px;

}

.front{

font-size:50px;

}

.front h3{

font-size:24px;

}

.back p{

font-size:22px;

}

.special{

grid-column:span 1;

height:360px;

}

}

@media(max-width:600px){

.hero h1{

font-size:46px;

}

.subtitle{

font-size:20px;

}

.hint{

font-size:18px;

}

.back p{

font-size:20px;

}

}

.yellow-title{

font-family:'Great Vibes',cursive;

font-size:48px;

color:#c48b00;

margin-bottom:20px;

}

.yellow-rose{

font-size:70px;

margin-top:20px;

animation:pulse 2s infinite;

}

.rose-animation{

font-size:90px;

animation:spinRose 6s linear infinite;

margin-bottom:20px;

}

@keyframes pulse{

0%{

transform:scale(1);

}

50%{

transform:scale(1.12);

}

100%{

transform:scale(1);

}

}

@keyframes spinRose{

0%{

transform:rotate(0deg);

}

100%{

transform:rotate(360deg);

}

}
