119 lines
2.0 KiB
CSS
119 lines
2.0 KiB
CSS
/* Copyright John Salguero All rights Reserved */
|
|
html, body {
|
|
margin: 0;
|
|
height: 100vh;
|
|
overflow: hidden;
|
|
|
|
background: linear-gradient(-45deg, #0f172a, #1e293b, #0ea5e9, #22c55e);
|
|
background-size: 400% 400%;
|
|
animation: gradientShift 12s ease infinite;
|
|
|
|
color: white;
|
|
font-family: Arial;
|
|
}
|
|
|
|
#timer {
|
|
position: absolute;
|
|
top: 20px;
|
|
right: 20px;
|
|
width: 72px;
|
|
height: 72px;
|
|
z-index: 10;
|
|
}
|
|
|
|
#timer svg {
|
|
transform: rotate(-90deg); /* start from top */
|
|
}
|
|
|
|
#timer-bg {
|
|
fill: none;
|
|
stroke: rgba(255,255,255,0.2);
|
|
stroke-width: 8;
|
|
}
|
|
|
|
#timer-progress {
|
|
fill: none;
|
|
stroke: #22c55e; /* green */
|
|
stroke-width: 8;
|
|
stroke-linecap: round;
|
|
transition: stroke-dashoffset 1s linear;
|
|
}
|
|
|
|
#timer-text {
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
transform: translate(-50%, -50%);
|
|
font-size: 28px;
|
|
font-weight: bold;
|
|
color: white;
|
|
}
|
|
|
|
#problem {
|
|
position: absolute;
|
|
top: 15%;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
|
|
font-size: 76px;
|
|
text-align: center;
|
|
}
|
|
|
|
#equation-main, #explanation, #equation-next{
|
|
position: absolute;
|
|
top: 31.5%;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
font-size: 48px;
|
|
transition: all 1.5s ease;
|
|
}
|
|
|
|
#explanation {
|
|
transform: translate(-50%, 80px);
|
|
font-size: 24px;
|
|
opacity: 0.8;
|
|
}
|
|
|
|
#equation-next {
|
|
font-size: 48px;
|
|
transform: translate(-50%, 160px); /* start slightly below */
|
|
opacity: 0;
|
|
}
|
|
|
|
#waveCanvas {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
z-index: 0;
|
|
}
|
|
|
|
#particleCanvas {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
z-index: 0;
|
|
}
|
|
|
|
#timer.low {
|
|
animation: pulse 1s infinite;
|
|
}
|
|
|
|
#equation-next.move-up {
|
|
transform: translate(-50%, 0);
|
|
}
|
|
|
|
@keyframes pulse {
|
|
0% { transform: scale(1); }
|
|
50% { transform: scale(1.1); }
|
|
100% { transform: scale(1); }
|
|
}
|
|
|
|
@keyframes gradientShift {
|
|
0% { background-position: 0% 50%; }
|
|
50% { background-position: 100% 50%; }
|
|
100% { background-position: 0% 50%; }
|
|
} |