494 lines
7.9 KiB
CSS
494 lines
7.9 KiB
CSS
|
|
body {
|
|
margin-left: 0;
|
|
margin-right: 0;
|
|
margin-top: 0;
|
|
margin-bottom: 0;
|
|
|
|
font-family: sans-serif;
|
|
|
|
background-color: black;
|
|
color: white;
|
|
}
|
|
|
|
a {
|
|
color: white;
|
|
text-decoration-color: white;
|
|
}
|
|
|
|
#header-bg1 {
|
|
animation: color-change-1 30s linear .5s infinite normal none;
|
|
}
|
|
|
|
#header-bg2 {
|
|
background-color: #29BDBD; /* fall-back */
|
|
animation: color-change-2 30s linear .5s infinite normal none;
|
|
}
|
|
|
|
.header-bg {
|
|
position: fixed;
|
|
width: 100%;
|
|
height: 100%;
|
|
top:0;
|
|
left:0;
|
|
z-index: -1;
|
|
}
|
|
|
|
.header-section {
|
|
animation: fly-down .5s ease-out 0s 1 normal none;
|
|
|
|
display: flex;
|
|
flex-direction: row;
|
|
align-items: center;
|
|
/* align-content: center; */
|
|
justify-content: center;
|
|
flex-wrap: wrap-reverse;
|
|
|
|
min-height: 25vh;
|
|
width: 100%;
|
|
}
|
|
|
|
.header-picture {
|
|
align-self: end;
|
|
}
|
|
|
|
.header-picture img {
|
|
width: calc(165200px/596);
|
|
min-width: 277px;
|
|
height: 200px;
|
|
margin-top: 30px;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
.blank-item {
|
|
width: calc(165200px/596);
|
|
min-width: 277px;
|
|
}
|
|
|
|
.title-thingy {
|
|
flex-basis: content;
|
|
text-align: center;
|
|
margin: 30px;
|
|
}
|
|
|
|
.title-thingy h2 {
|
|
font-family: monospace;
|
|
}
|
|
|
|
.general-content {
|
|
background-color: #171717;
|
|
overflow: auto;
|
|
|
|
padding-left: 50px;
|
|
padding-right: 50px;
|
|
|
|
padding-bottom: 60px;
|
|
padding-top: 20px;
|
|
|
|
}
|
|
|
|
.general-content h2 {
|
|
margin-top: 50px;
|
|
}
|
|
|
|
.general-content h3 {
|
|
margin-top: 25px;
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.projects-section {
|
|
/* empty for now */
|
|
}
|
|
|
|
.project details {
|
|
margin-top: 16px;
|
|
margin-bottom: 16px;
|
|
}
|
|
|
|
.project details summary {
|
|
cursor: pointer;
|
|
}
|
|
|
|
.spam-manifesto {
|
|
text-align: center;
|
|
border-style: groove;
|
|
|
|
padding-left: 5%;
|
|
padding-right: 5%;
|
|
padding-top: 2%;
|
|
padding-bottom: 2%;
|
|
|
|
border-color: red;
|
|
}
|
|
|
|
.spam-manifesto a {
|
|
color: red;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.poem {
|
|
text-align: start;
|
|
}
|
|
|
|
.poem p {
|
|
width:fit-content;
|
|
|
|
margin-left: auto;
|
|
margin-right: auto;
|
|
}
|
|
|
|
.spam-sandwich {
|
|
display: none;
|
|
}
|
|
|
|
.text-section {
|
|
margin-left: auto;
|
|
margin-right: auto;
|
|
|
|
max-width: 900px;
|
|
}
|
|
|
|
.sub-section details p {
|
|
animation: fly-down .5s ease-out 0s 1 normal none;
|
|
}
|
|
|
|
footer {
|
|
background-color: black;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
align-content: center;
|
|
justify-content: center;
|
|
|
|
min-height: 20vh;
|
|
width: 100%;
|
|
}
|
|
|
|
h1 {
|
|
font-size: xx-large;
|
|
}
|
|
|
|
h2 {
|
|
font-size: xx-large;
|
|
}
|
|
|
|
h3 {
|
|
font-size: x-large;
|
|
}
|
|
|
|
.filler-div {
|
|
min-height: 90vh;
|
|
}
|
|
|
|
.screenshot-collection {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
justify-content: center;
|
|
align-items: center;
|
|
}
|
|
|
|
.screenshot-collection input {
|
|
display: none;
|
|
}
|
|
|
|
.project-image .thumbnail {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 444px;
|
|
max-width: calc(min(450px,calc(100vw - 100px)));
|
|
max-height: 253.125px;
|
|
overflow: hidden;
|
|
margin: 3px;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.screenshot-collection .thumbnail img {
|
|
min-width: calc(min(450px,calc(100vw - 100px)));
|
|
}
|
|
.screenshot-collection .no-crop img {
|
|
min-width: auto;
|
|
max-width: calc(min(450px,calc(100vw - 100px)));
|
|
min-height: auto;
|
|
max-height: 253.125px;
|
|
}
|
|
|
|
.project-image {
|
|
max-width: 100%;
|
|
}
|
|
|
|
.project-image input {
|
|
display: none;
|
|
}
|
|
|
|
.modal {
|
|
display: none;
|
|
}
|
|
|
|
input:checked + .modal {
|
|
animation: fly-forward .5s ease-out 0s 1 normal none;
|
|
display: flex;
|
|
justify-content: safe center;
|
|
align-items: safe center;
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
background-color: #000000CC;
|
|
overflow: auto;
|
|
}
|
|
|
|
.lazy-image {
|
|
display: block;
|
|
--ratioH: calc(var(--height) / var(--width));
|
|
--ratioW: calc(var(--width) / var(--height));
|
|
width: calc(min(90vw, 90vh * var(--ratioW)));
|
|
height: calc(min(90vh, 90vw * var(--ratioH)));
|
|
background-size: contain;
|
|
background-repeat: no-repeat;
|
|
background-position: center;
|
|
cursor: zoom-in;
|
|
}
|
|
|
|
input:checked + .lazy-image {
|
|
cursor: zoom-out;
|
|
--zwidth: calc(min(200vw, 200vh * var(--ratioW))*2);
|
|
--zheight: calc(min(200vh, 200vw * var(--ratioH))*2);
|
|
width: var(--zwidth);
|
|
height: var(--zheight);
|
|
scroll-snap-align: center;
|
|
}
|
|
|
|
input:checked + .lazy-image:active {
|
|
cursor: grabbing;
|
|
}
|
|
|
|
body:has(.project-image > input:checked) {
|
|
overflow: hidden;
|
|
}
|
|
|
|
.modal .close {
|
|
cursor: pointer;
|
|
position: fixed;
|
|
top: 0;
|
|
right: 0;
|
|
margin: 20px;
|
|
width: 60px;
|
|
height: 60px;
|
|
background-image: url('/img/modal-close.svg');
|
|
background-size: 30px 30px;
|
|
background-position: center;
|
|
background-repeat: no-repeat;
|
|
}
|
|
|
|
.modal-bg {
|
|
position: fixed;
|
|
z-index: -1;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
|
|
.text-section > * {
|
|
animation: fly-up .5s ease-out 0s 1 normal none;
|
|
}
|
|
|
|
.footer-logo {
|
|
width: 50px;
|
|
height: 50px;
|
|
}
|
|
|
|
#cursor-thing {
|
|
position: static;
|
|
cursor: pointer;
|
|
width: 50px;
|
|
height: 50px;
|
|
background-image: url('/img/duck-sprite.webp');
|
|
z-index: 1;
|
|
}
|
|
|
|
@keyframes fly-up {
|
|
0% {
|
|
transform: translateY(70%);
|
|
opacity: 0%;
|
|
}
|
|
|
|
40% {
|
|
transform: translateY(0%);
|
|
opacity: 70%;
|
|
}
|
|
|
|
100% {
|
|
opacity: 100%;
|
|
}
|
|
|
|
}
|
|
|
|
@keyframes fly-down {
|
|
0% {
|
|
transform: translateY(-70%);
|
|
opacity: 0%;
|
|
}
|
|
|
|
20% {
|
|
transform: translateY(0%);
|
|
opacity: 70%;
|
|
}
|
|
|
|
100% {
|
|
opacity: 100%;
|
|
}
|
|
|
|
}
|
|
|
|
@keyframes fly-forward {
|
|
0% {
|
|
transform: scale(0);
|
|
opacity: 0%;
|
|
}
|
|
|
|
20% {
|
|
transform: scale(1);
|
|
opacity: 70%;
|
|
}
|
|
|
|
100% {
|
|
opacity: 100%;
|
|
}
|
|
|
|
}
|
|
|
|
@keyframes color-change-1 {
|
|
0% {
|
|
background-color: #29BDBD;
|
|
}
|
|
|
|
25% {
|
|
background-color: #197293;
|
|
}
|
|
|
|
75% {
|
|
background-color: #197293;
|
|
}
|
|
|
|
100% {
|
|
background-color: #29BDBD;
|
|
}
|
|
}
|
|
|
|
@keyframes color-change-2 {
|
|
0% {
|
|
background: linear-gradient(90deg, #00000000 0%, #29BDBD 100%);
|
|
}
|
|
|
|
25% {
|
|
opacity: 100%;
|
|
}
|
|
|
|
49% {
|
|
background: linear-gradient(90deg, #00000000 0%, #29BDBD 100%);
|
|
opacity: 0%;
|
|
}
|
|
50% {
|
|
background: linear-gradient(90deg, #29BDBD 0%, #00000000 100%);
|
|
opacity: 0%;
|
|
}
|
|
|
|
75% {
|
|
opacity: 100%;
|
|
}
|
|
|
|
100% {
|
|
background: linear-gradient(90deg, #29BDBD 0%, #00000000 100%);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
/* full-res images */
|
|
#oscp-fr {
|
|
background-image: url(/img/osc-pairing.png);
|
|
--width: 1260;
|
|
--height: 798;
|
|
}
|
|
|
|
#oscc-fr {
|
|
background-image: url(/img/osc-clicker.png);
|
|
--width: 1551;
|
|
--height: 3284;
|
|
}
|
|
|
|
#lpcl-fr {
|
|
background-image: url(/img/peercord-login.png);
|
|
--width: 2004;
|
|
--height: 1262;
|
|
}
|
|
|
|
#lpcc-fr {
|
|
background-image: url(/img/peercord-chat.png);
|
|
--width: 2004;
|
|
--height: 1262;
|
|
}
|
|
|
|
#lio-fr {
|
|
background-image: url(/img/ilo-overview.jpg);
|
|
--width: 1913;
|
|
--height: 921;
|
|
}
|
|
|
|
#lit-fr {
|
|
background-image: url(/img/ilo-temperatures.jpg);
|
|
--width: 1907;
|
|
--height: 923;
|
|
}
|
|
|
|
#lid-fr {
|
|
background-image: url(/img/ilo-drives.jpg);
|
|
--width: 1916;
|
|
--height: 917;
|
|
}
|
|
|
|
#lifci-fr {
|
|
background-image: url(/img/ilo-fan-and-cpu-info.jpg);
|
|
--width: 1188;
|
|
--height: 823;
|
|
}
|
|
|
|
#sma-fr {
|
|
background-image: url(/img/smbus-mitm-arduino.jpg);
|
|
--width: 1920;
|
|
--height: 1440;
|
|
}
|
|
|
|
#smw-fr {
|
|
background-image: url(/img/smbus-mitm-wiring.jpg);
|
|
--width: 1920;
|
|
--height: 1440;
|
|
}
|
|
|
|
#scst-fr {
|
|
background-image: url(/img/security-camera-stream.jpg);
|
|
--width: 1764;
|
|
--height: 1004;
|
|
}
|
|
|
|
#scsc-fr {
|
|
background-image: url(/img/security-camera-screenshot.png);
|
|
--width: 1440;
|
|
--height: 3120;
|
|
}
|
|
|
|
#r-fr {
|
|
background-image: url(/img/roomba.jpg);
|
|
--width: 1233;
|
|
--height: 925;
|
|
}
|
|
|
|
#rc-fr {
|
|
background-image: url(/img/roomba-control.jpg);
|
|
--width: 1185;
|
|
--height: 655;
|
|
}
|