website-v3/static/style.css

257 lines
No EOL
4.7 KiB
CSS

/* FONTS */
@import url('/fonts/source-sans-3.css');
/* GENERAL */
html{scroll-behavior: smooth;}
body{
/* STYLING */
margin: 0;
padding: 0;
background: var(--background);
color: var(--color);
font-family: var(--font);
/* VARIABLES */
--primary: #3498db;
--secondary: #2980b9;
--background: #181818;
--color: #f8f8f8;
--font: "Source Sans 3", sans-serif;
--baseRadius: 12px;
--baseTransition: all 250ms;
}
/* CONTENT */
.content{
margin: auto;
}
.inner-width{
margin: auto;
width: 100%;
max-width: clamp(1100px, 90%, 1250px);
}
/* NAVIGATION */
nav{
width: 100%;
height: 96px;
background: transparent;
position: fixed;
top: 0;
left: 0;
transition: var(--baseTransition);
z-index: 1001;
}
nav.small{
height: 66px;
}
nav .inner-width{
height: 100%;
display: flex;
flex-direction: row;
justify-content: space-between;
align-content: center;
align-items: center;
}
nav img{
width: auto;
height: 56px;
}
nav.small img{
height: 46px;
}
.nav-links a{
/* STYLE */
color: var(--color);
font-size: 1.2rem;
text-decoration: none;
margin: 5px 10px;
/* HOVER EFFECT */
position: relative;
}
.nav-links a:hover, nav a:focus{
text-decoration: none;
}
.nav-links a:not(:last-child)::after{
content: "";
position: absolute;
top: 100%;
left: 0;
width: 100%;
height: 4px;
background: var(--color);
border-radius: 4px;
transition: var(--baseTransition);
transform: scaleX(0);
}
.nav-links a:not(:last-child):hover::after{
transform: scaleX(0.5);
}
.nav-links a:last-child{
padding: 5px 16px;
background: var(--primary);
color: var(--color);
border: none;
border-radius: var(--baseRadius);
transition: var(--baseTransition);
}
.nav-links a:last-child:hover{
background: var(--secondary);
}
.nav-toggle{
display: none;
}
@media screen and (max-width:640px){
.nav-toggle{
display: block;
}
.nav-links{
display: none;
}
nav .inner-width{
justify-content: space-between;
padding: 0 20px;
box-sizing: border-box;
}
nav.open{
height: 100dvh;
background: var(--background);
}
nav.open .inner-width{
flex-direction: column;
flex-wrap: wrap;
justify-content: space-around;
align-content: center;
align-items: center;
}
nav.open .nav-links{
display: flex;
flex-direction: column;
flex-wrap: wrap;
justify-content: center;
align-content: center;
align-items: center;
}
nav.open .nav-links a, nav i{
font-size: 2rem;
}
nav i{
font-size: 3rem;
}
.nav-links a:hover::after{
display: none;
}
.nav-links a:last-child{
background: inherit;
padding: inherit;
}
}
/* HERO */
.hero{
display: flex;
flex-direction: column;
justify-content: center;
align-content: center;
align-items: center;
height: 100dvh;
background-image: url("assets/hero/bg_animated_4.svg");
background-size: cover;
background-repeat: repeat-x;
background-position: center;
}
.hero h1{
margin: 0 20px;
font-size: 6rem;
transition: var(--baseTransition);
letter-spacing: -0.6rem;
}
.hero h1 span{
display: inline-block;
animation: wave 2s ease-in-out infinite;
animation-delay: calc(0.1s * (var(--i) - 1));
}
.hero h1 span .name-part{
white-space: nowrap;
display: block;
}
.hero h1 span:nth-child(1) { --i: 1; }
.hero h1 span:nth-child(2) { --i: 2; }
.hero h1 span:nth-child(3) { --i: 3; }
.hero h1 span:nth-child(4) { --i: 4; }
.hero h1 span:nth-child(5) { --i: 5; }
.hero h1 span:nth-child(6) { --i: 6; }
.hero h1 span:nth-child(7) { --i: 7; }
.hero h1 span:nth-child(8) { --i: 8; }
.hero h1 span:nth-child(9) { --i: 9; }
.hero h1 span:nth-child(10) { --i: 10; }
.hero h1 span:nth-child(11) { --i: 11; }
.hero h1 span:nth-child(12) { --i: 12; }
.hero h1 span:nth-child(13) { --i: 13; }
.hero h1 span:nth-child(14) { --i: 14; }
@keyframes wave{
0%, 100%{
transform: translateY(0);
}
50%{
transform: translateY(-20px);
}
}
.hero p{
margin: 0 20px;
font-size: 2rem;
}
.hero a{
margin: 60px 0 0 0;
color: var(--color);
text-decoration: none;
font-size: 3rem;
padding: 5px 15px;
border-radius: 50%;
transition: var(--baseTransition);
animation: scrollHint 2000ms infinite;
}
.hero a:hover{
filter: drop-shadow(0 0 1.1rem var(--primary));
}
@keyframes scrollHint{
0%, 100%{
transform: translateY(0%);
}
40%{
transform: translateY(10%);
}
}