html, body {
    margin: 0;
    height: 100vh;
    overflow-x: hidden;
}

.background {
    height: 100%;
    width: 100%;

    background:
        radial-gradient(
            circle at top center,
            #84549F 0%,
            #472768 45%,
            #1A133B 100%
        );

    display: flex;
    justify-content: center;
    align-items: center;
}

.cloud {
    position: absolute;
    right: 0.1vw;
    bottom: 0;
    width: 120vw;
}

.top {
    position: absolute;
    top: 0;
    width: 100vw;
}

.sparkles {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 50vw;
}

.sparkle {
    position: absolute;
    left: 0;
    top: 0;
    width: 40vw;
}

.faded {
    position: absolute;
    left: 0;
    bottom: 0;
    size: 80%;
    width: 50vw;
}

.topfade {
    position: absolute;
    right: 0;
    top: 0;
    size: 80%;
    width: 50vw;
}

.starL {
    position: absolute;
    left: 5%;
    bottom: 2%;
    size: 80%;
}

.starR {
    position: absolute;
    right: 5%;
    top: 10%;
    size: 50%;
}

.vectorL {
    position: absolute;
    left: 0;

    bottom: 0;
}

.vectorR {
    position: absolute;
    right: 0;
    top: 0;
}

.cat {
    position: absolute;
    top: 20%; 
}

h1 {
    position: absolute;
    font-family: "Galindo", cursive;
    font-size: clamp(4rem, 8vw, 7rem);
    top: 30%;
    z-index: 10;

    background: linear-gradient(
        180deg,
        #FFF8E6 0%,
        #FFE9A3 25%,
        #F4D78A 50%,
        #D9B45B 75%,
        #A67C2E 100%
    );

    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;

    text-shadow:
        0 2px 4px rgba(0,0,0,0.3);
}

.black-ops-one-regular {
  font-family: "Black Ops One", system-ui;
  font-weight: 400;
  font-style: normal;
}



#plbutton {
    border-radius: 50%;
    width: 125px;
    height: 125px;
    border: none;
    background: url("assets/plbutton.png") center / contain no-repeat;
    position: absolute;
    bottom: 30.2%;
    z-index: 9;
    transition: all 1.2s ease;
}

#plbutton:hover:not(.swipe-up) {
    box-shadow:
        0 0 20px rgba(244,215,138,.6),
        0 0 40px rgba(244,215,138,.4),
        0 0 60px rgba(244,215,138,.2);

    transform: scale(1.05);
}

.line {
    position: absolute;
    bottom: 45%;
    width: 80vw;
    z-index: 8;
}

p {
    font-family: "DM Serif Display", sans-serif;
    font-weight: 400;
    font-size: 200%;
    color: #bea662;
}

.time {
    position: absolute;
    left: 10.5%;
    bottom: 39%;
}

.heart {
    position: absolute;
    right: 10.5%;
    bottom: 39%;
}

.glitter {
    position: absolute;

    width: 8px;
    height: 8px;

    border-radius: 50%;

    background: #948b5a;

    box-shadow:
        0 0 8px #d1c164,
        0 0 16px rgba(236,215,94,.8);

    opacity: 0;

    animation: glitter 4s infinite ease-in-out;
}


.glitter-small {
    width: 4px;
    height: 4px;
}

.glitter-large {
    width: 12px;
    height: 12px;
}

.glitter1 {
    top: 20%;
    left: 30%;
    animation-delay: 0s;
}

.glitter2 {
    top: 60%;
    left: 70%;
    animation-delay: 1.3s;
}

.glitter3 {
    top: 40%;
    left: 80%;
    animation-delay: 3.2s;
}

.glitter4 {
    top: 15%;
    left: 60%;
    animation-delay: 2.1s;
}

.glitter5 {
    top: 75%;
    left: 20%;
    animation-delay: 4.5s;
}

.glitter6 {
    top: 35%;
    left: 15%;
    animation-delay: 0.8s;
}

@keyframes glitter {
    0%, 100% {
        opacity: 0;
        transform: scale(0.5);
    }

    40% {
        opacity: 0.3;
    }

    50% {
        opacity: 1;
        transform: scale(1.8);
    }

    60% {
        opacity: 0.4;
    }

    70%, 90% {
        opacity: 0;
    }
}

.exp {
    position: absolute;
    bottom: 20%;
}

h1,
.cat,
.line,
.time,
.heart,
.exp,
.starL,
.starR,
.vectorL,
.vectorR,
#plbutton {
    transition:
        transform 1.2s ease-in-out,
        opacity 1.2s ease-in-out;
}

.swipe-up {
    transform: translateY(-100vh);
    opacity: 0;
}

.transition {
    position: fixed;
    inset: 0;

    opacity: 0;
    pointer-events: none;
}

.transition.show {
    opacity: 1;
}

.rocket {
    position: absolute;
    left: 10vw;
    top: 23%;

    width: 45vw;
}

.rocket.fly {
    transform: translateX(120vw);
    transition: transform 1.5s linear;
}

.trail {
    position: absolute;
    top: -20%;
    left: -4%;
    z-index: 12;
    width: 99%;

    opacity: 0;
    transform: scale(0.8);

    transition: all 1s ease;
}

.trail.show {
    opacity: 1;
    transform: scale(1.2);
}

.trail.fade-out {
    opacity: 0;
    transform: scale(1.1);
}

.rocket-glitter {
    position: absolute;
    width: 8px;
    height: 8px;

    border-radius: 50%;

    background: #f4d78a;

    box-shadow:
        0 0 8px #f4d78a,
        0 0 16px #f4d78a,
        0 0 24px #f4d78a;

    pointer-events: none;

    animation: sparkle 0.8s forwards;
}

@keyframes sparkle {
    from {
        opacity: 1;
        transform: scale(1);
    }

    to {
        opacity: 0;
        transform: scale(2);
    }
}

.transporting {
    position: absolute;
    z-index: 11;

    left: 12vw;
    top: 62%;

    font-family: "Funnel Sans", sans-serif;
    font-size: 0.9rem;

    color: rgba(244,215,138,.8);
    letter-spacing: 2px;

    opacity: 0;

    transition: opacity 0.5s ease;
}

.transporting.fly {
    opacity: 1;

}

.transporting.hide {
    opacity: 0;
}

.about {
    position: absolute;
    width: 35vw;
    left: 3.5vw;
    top: 7vw;
    animation: floatPlanet 4s ease-in-out infinite;
}

.abt {
    position: absolute;
    left: 14.7vw;
    top: 26vw;
    font-size: 35pt;
}

.my-rectangle {
    position: absolute;
    width:clamp(600px, 55vw, 1000px);
    height: 800px;
    z-index: 13;
    right: 5vw;
    border-radius: 30px;
    background: rgba(128, 92, 146, .65);
    backdrop-filter: blur(12px);
    border: 2px solid rgba(255,255,255,.08);
    padding: 20px;

    box-shadow:
        0 0 40px rgba(0,0,0,.25),
        0 0 80px rgba(132,84,159,.2);    
    
    box-shadow:
        0 0 40px rgba(0,0,0,.25),
        0 0 80px rgba(132,84,159,.2);
}

h2 {
    font-size: 55pt;
    z-index: 15;
    color: #a88f4a;
}

.abp {
    font-family: sans-serif;
    font-size: 15pt;
    color: white;
    line-height:1.4;
}

.abme {
    width: 20vw;
    width: 100%;
    max-width: 320px;
    justify-self: center;

    object-fit: cover;

}

.abme{
    box-shadow:
        0 0 8px rgba(255, 215, 90, 0.35),
        0 0 18px rgba(255, 215, 90, 0.25),
        0 0 35px rgba(255, 215, 90, 0.15);
}

.about-content{
    padding: 2%;
    display:grid;
    grid-template-columns:2fr 1fr;
    gap:40px;
    align-items:start;
}

#about {
    left: 5%;
    top: 30%;
    z-index: 20;
    width: 600px;
    height: 600px;
    border: none;
    background: url("assets/pink.png") center / contain no-repeat;
    position: absolute;
}

#contact {
    left: 74%;
    top: 40%;
    z-index: 20;
    width: 350px;
    height: 350px;
    border: none;
    background: url("assets/mar.png") center / contain no-repeat;
    position: absolute;
    animation:sway 4.8s ease-in-out infinite;
}

#proj {
    left: 50%;
    top: 52%;
    z-index: 20;
    width: 350px;
    height: 350px;
    border: none;
    background: url("assets/planet.png") center / contain no-repeat;
    position: absolute;
}

#extra {
    left: 32%;
    top: 20%;
    z-index: 20;
    width: 350px;
    height: 350px;
    border: none;
    background: url("assets/purp.png") center / contain no-repeat;
    position: absolute;
}

#awards {
    left: 63%;
    top: 18%;
    z-index: 20;
    width: 250px;
    height: 250px;
    border: none;
    background: url("assets/blue.png") center / contain no-repeat;
    position: absolute;
}

.ab {
    position: absolute;
    z-index: 18;
    left: 16%;
    top: 70%;
    text-shadow:
        0 0 6px rgba(73, 26, 122, 0.6),
        0 0 12px rgba(168, 84, 255, 0.45),
        0 0 24px rgba(168, 84, 255, 0.25);

}

.proj {
    position: absolute;
    z-index: 18;
    left: 53%;
    top: 78%;
    text-shadow:
        0 0 6px rgba(73, 26, 122, 0.6),
        0 0 12px rgba(168, 84, 255, 0.45),
        0 0 24px rgba(168, 84, 255, 0.25);

}

.extra {
    position: absolute;
    z-index: 18;
    left: 36%;
    top: 46%;
    text-shadow:
        0 0 6px rgba(73, 26, 122, 0.6),
        0 0 12px rgba(168, 84, 255, 0.45),
        0 0 24px rgba(168, 84, 255, 0.25);

}

.awards {
    position: absolute;
    z-index: 18;
    left: 66%;
    top: 39%;
    text-shadow:
        0 0 6px rgba(73, 26, 122, 0.6),
        0 0 12px rgba(168, 84, 255, 0.45),
        0 0 24px rgba(168, 84, 255, 0.25);

}

.contact {
    position: absolute;
    z-index: 18;
    left: 79%;
    top: 70%;
    text-shadow:
        0 0 6px rgba(73, 26, 122, 0.6),
        0 0 12px rgba(168, 84, 255, 0.45),
        0 0 24px rgba(168, 84, 255, 0.25);

}

#about,
#proj,
#awards,
#extra,
#contact {
    animation: sway 4s ease-in-out infinite;
    transition: filter .3s ease, transform .3s ease;
}

#projects { animation-delay: .4s; }
#extra    { animation-delay: .8s; }
#awards   { animation-delay: 1.2s; }
#contact  { animation-delay: 1.6s; }

@keyframes sway {
    0%,100%{
        transform: translateY(0);
    }
    50%{
        transform: translateY(-10px);
    }
}

#about:hover,
#proj:hover,
#extra:hover,
#awards:hover,
#contact:hover{
    transform: scale(1.08);

    filter:
        brightness(1.08)
        drop-shadow(0 0 8px #ffe8a3)
        drop-shadow(0 0 18px #ffd86b)
        drop-shadow(0 0 32px rgba(173,92,255,.6));

    cursor: pointer;
}

.con {
    left: 0%;
    position: absolute;
    top: 0%;
}

.const {
    bottom: 0%;
    right: -10%;
    position: absolute;
}

.rk {
    position: absolute;
    width: 20vw;
    left: 75%;
    top: 2%;
}

.ins {
    position: absolute;
    left: 83%;
    top: 23%;
    font-size: 15px;
}

.mar {
    position: absolute;
    left: 12%;
    top: 25%;
    width: 300px;
    height: 300px;
    animation: floatPlanet 4s ease-in-out infinite;
}

h3 {
    text-align: center;
    font-size: 45pt;
    color: #D9B45B;
}

.contact-content{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:5px;
}

.cont{
    text-align:center;
    max-width:700px;
    margin-bottom:20px;
}

.conta {
    width: 20vw;
    width: 100%;
    max-width: 320px;
    justify-self: center;

    object-fit: cover;

}

.contact-item{
    display:flex;
    align-items:center;
    gap:20px;
    margin-bottom:35px;
}

.contact-item img{
    width:60px;
}

.contact-item h4{
    margin:0;
    color:#F4D78A;
    font-size:1.2rem;
}

.link{
    color:white;
    text-decoration:none;
    transition:.3s;
}

.link:hover{
    color:#F4D78A;
    text-shadow:0 0 10px #84549F;
}

.contact-item img:hover{
    transform:translateY(-4px) scale(1.15);

    filter:
        drop-shadow(0 0 12px rgba(192,140,255,.9))
        drop-shadow(0 0 24px rgba(192,140,255,.5));
}

#returnbt {
    left: 18%;
    top: 68%;
    z-index: 20;
    width: 250px;
    height: 250px;
    border: none;
    background: url("assets/rock.png") center / contain no-repeat;
    position: absolute;
}

.ret {
    font-family: sans-serif;
    font-size: 14pt;
    position: absolute;
    left: 8%;
    top: 77.5%;
}

#returnbt:hover{
    transform:translateY(-4px) scale(1.15);

    filter:
        drop-shadow(0 0 12px rgba(192,140,255,.9))
        drop-shadow(0 0 24px rgba(192,140,255,.5));
}

.contact-item:nth-child(1) img{
    width:55px;
}

.contact-item img[src*="git"]{
    transform: translateX(-10px);
}

.contact-item img[src*="mail"]{
    transform: translateX(-5px);
}

.ext {
    position: absolute;
    left: 12%;
    top: 25%;
    width: 300px;
    height: 300px;
    animation: floatPlanet 4s ease-in-out infinite;
}

.prj {
    position: absolute;
    left: 12%;
    top: 25%;
    width: 300px;
    height: 300px;
    animation: floatPlanet 4s ease-in-out infinite;
}

.awd {
    position: absolute;
    left: 12%;
    top: 25%;
    width: 300px;
    height: 300px;
    animation: floatPlanet 4s ease-in-out infinite;
}

@keyframes floatPlanet{
    0%,100%{
        transform: translateY(0px);
    }

    50%{
        transform: translateY(-12px);
    }
}

.ex {
    position: absolute;
    left: 14.7vw;
    top: 24vw;
    font-size: 30pt;
}

.pr {
    position: absolute;
    left: 14.7vw;
    top: 24vw;
    font-size: 32pt;
}

.no {
    font-size: 15pt;
    font-family: sans-serif;
}

.activity.no-image{
    display:block;
    width:100%;
}

.activity.no-image .activity-text{
    max-width:100%;
}

.my-rectangle{
    overflow-y:auto;
    padding:50px;
}

h3{
    text-align:center;
    margin-bottom:60px;
}

.activity{
    display:grid;
    grid-template-columns:1.6fr 1fr;
    gap:50px;

    align-items:center;
}

.activity.reverse{
    grid-template-columns:1fr 1.6fr;
}

.activity.reverse .activity-text{
    order:2;
}

.activity.reverse .activity-img{
    order:1;
}

h4{
    font-size:30px;
    color:#D9B45B;
    margin-bottom:15px;
}

.activity-text p{
    font-family:sans-serif;
    font-size:17px;
    line-height:1.8;
    color:white;
}

.activity-img{
    width:100%;
    max-width:330px;

    justify-self:center;

    object-fit:cover;

    box-shadow:
        0 0 30px rgba(168,143,74,.25);

    transition:.35s ease;
}

.divider{
    width:80%;
    height:2px;

    margin:45px auto;

    background:linear-gradient(
        to right,
        transparent,
        rgba(168,143,74,.6),
        transparent
    );
}

.activity.reverse .activity-text{
    order:2;
}

.activity.reverse .activity-img{
    order:1;
    justify-self:start;
}

.activity-text p{
    font-family:sans-serif;
    font-size:17px;
    line-height:1.8;
    color:white;
}

.featured-award{
    display:grid;
    grid-template-columns:1fr 1.5fr;
    gap:45px;
    align-items:center;

    margin-bottom:50px;
}

.featured-img{
    width:100%;
    max-width:350px;

    justify-self:center;

    object-fit:cover;

    box-shadow:
        0 0 25px rgba(168,143,74,.3);

    transition:.35s ease;
}

.featured-info h4{
    font-size:2rem;
    color:#d9b45b;
    margin-bottom:10px;
}

.award-year{
    color:#b89c56;
    font-style:italic;
    margin-bottom:18px;
}

.featured-info p{
    font-family:sans-serif;
    line-height:1.8;
    color:white;
}

.award-card{
    display:flex;
    align-items:flex-start;
    gap:25px;

    margin:35px 0;
}

.award-icon{
    font-size:2.5rem;
    width:60px;
    text-align:center;
}

.award-text h4{
    margin:0;
    color:#d9b45b;
    font-size:1.6rem;
}

.award-text p{
    font-family:sans-serif;
    line-height:1.7;
    color:white;
}

.divider{
    width:80%;
    height:2px;

    margin:45px auto;

    background:linear-gradient(
        to right,
        transparent,
        rgba(168,143,74,.6),
        transparent
    );
}

.project-layout{
    display:grid;
    grid-template-columns:1.8fr 1fr;
    gap:60px;
    align-items:center;
}

.project-text{
    display:flex;
    flex-direction:column;
    gap:25px;
}

.project-desc{
    font-family:sans-serif;
    font-size:20px;
    line-height:1.6;
    color:white;
}

.section h5{
    font-size:28px;
    color:#E6C45C;
    margin-bottom:10px;
}

.section ul{
    list-style:none;
    padding:0;
    margin:0;
}

.section li{
    color:white;
    font-size:18px;
    margin-bottom:8px;
}

.section li::before{
    content:"✦ ";
    color:#E6C45C;
}

.project-preview{
    display:flex;
    justify-content:center;
}

.project-img{
    width:300px;
    border-radius:18px;

    transition:.35s;

    box-shadow:
        0 0 18px rgba(255,215,120,.25),
        0 0 35px rgba(132,84,159,.25);
}


.project-btn{

    width:max-content;

    margin-top:10px;

    text-decoration:none;

    color:#1A133B;

    background:#E6C45C;

    padding:14px 28px;

    border-radius:30px;

    font-weight:bold;

    transition:.3s;
}

.project-btn:hover{

    transform:translateY(-3px);

    box-shadow:
        0 0 18px rgba(255,215,120,.6);

    background:#f7d97b;
}