@font-face { font-family: b612_mono; src: url(stuff/fonts/B612_Mono/B612Mono-Regular.ttf); } @font-face { font-family: b612_mono; src: url(stuff/fonts/B612_Mono/B612Mono-Bold.ttf); font-weight: bold; } @font-face { font-family: b612_mono; src: url(stuff/fonts/B612_Mono/B612Mono-Italic.ttf); font-style: italic; } @font-face { font-family: b612_mono; src: url(stuff/fonts/B612_Mono/B612Mono-BoldItalic.ttf); font-weight: bold; font-style: italic; } :root { --stdfont: b612_mono, mono, monospace; --bgcolor: #222222; --fontcolor: #dcdcdc; --linkcolor: #df1955; --linkhover: #00ffd5; --blockbg: #fff1; --blockbghover: #fff2; --stdshadow: #000; /* ALL colors should be defined here. If there's a color value somewhere else, move it here so it can be responsive */ --stdaccentborder: 3px solid var(--fontcolor); --bodywidth: min(90vw, 80ch); --stddropshadow: 4px 4px 8px black; --stdpadding: 1rem; --navbarheight: calc(var(--stdpadding) * 2.5); } html, body { height: 100%; } body { color: var(--fontcolor); font-family: var(--stdfont); text-shadow: 1px 1px 3px var(--stdshadow); max-width: var(--bodywidth); margin: auto; background-color: var(--bgcolor); box-sizing: border-box; } /* Headings */ h1 { margin-top: calc(var(--navbarheight) + var(--stdpadding)); font-size: 3em; background-image: url('images/isopod.php'); background-size: contain; background-position: right; background-repeat: no-repeat; padding-bottom: calc(var(--stdpadding) * 2); margin-bottom: calc(var(--stdpadding) * -2); } h1 + h2#caption { font-weight: normal; padding-top: 0; margin-top: -1.4em; } h1, h2, h3, h4, h5, h6 { border-left: var(--stdaccentborder); padding-left: var(--stdpadding); } /* Links */ a { color: var(--linkcolor); } a:hover { color: var(--linkhover); } /* Nav */ nav { display: flex; flex-wrap: wrap; max-width: 100%; align-items: center; justify-content: center; } nav#main-nav { position: absolute; top: 0; left: 0; right: 0; height: var(--navbarheight); } nav a, nav span, body > a{ padding: calc(var(--stdpadding) / 2) calc(var(--stdpadding) / 4 * 3); margin: calc(var(--stdpadding) / 2) calc(var(--stdpadding) / 4); } nav a, body > a { border-left: var(--stdaccentborder); border-color: #0000; background: linear-gradient(var(--blockbghover) 0 0) 0 / var(--bgpos, 0) no-repeat; transition: background .3s, border .3s; } nav a:hover, body > a:hover { --bgpos: 100%; border-left: var(--stdaccentborder); } body > a { display: block; margin-left: 0; padding-left: 1rem; font-weight: bold; font-size: 1.25em; border-left: var(--stdaccentborder); } /* Background image type beat */ #leftsidebg, #rightsidebg { position: fixed; z-index: -10; bottom: 0; top: 0; background-position: center; background-size: cover; --shadowsize: 3rem; --distancefromcenter: calc((var(--bodywidth) / -2) - (var(--stdpadding) * 3)); } #leftsidebg { right: calc(50% - var(--distancefromcenter)); left: 0; box-shadow: calc(0rem - var(--shadowsize)) 0 var(--shadowsize) calc(0rem - var(--shadowsize)) black inset; } #rightsidebg { right: 0; left: calc(50% - var(--distancefromcenter)); box-shadow: var(--shadowsize) 0 var(--shadowsize) calc(0rem - var(--shadowsize)) black inset; } /* 88x31 button container */ .buttons { text-align: center; font-size: 0; } .buttons > * { display: inline-block; margin: 0.1rem; font-size: 0; } .buttons > a > img { transition-duration: .5s; box-shadow: none; display: inline-block; transform: translate(0, 0); } .buttons > a > img:hover { box-shadow: 2px 2px 4px black; z-index: 5; transform: translate(-2px, -2px); } /* Code snippets */ code { background-color: black; padding: 0.15rem; } :is(main,body,pre) > code { display: block; width: 75%; margin: auto; margin-bottom: 1rem; padding: 0.7rem; border: 1px solid #00ffd5; } :is(main,body,pre) > code > span.codetitle { margin: -0.7rem; margin-top: -0.4rem; margin-bottom: 0.7rem; padding-bottom: 0.2rem; font-weight: normal; top: 0; left: 0; right: 0; text-align: center; border-bottom: 1px solid #00ffd5; display: block; } /* Tables */ table { border-collapse: collapse; } td { padding: calc(var(--stdpadding) / 2); } tr > td:first-child { padding-left: 0; } tr.indent-1 td { padding-left: calc(var(--stdpadding)); } tr.indent-1 td:first-child { border-left: var(--stdaccentborder); } /* Quotations */ figure.quote { padding: calc(var(--stdpadding) * 1.5); margin: 0; margin-bottom: initial; border-left: var(--stdaccentborder); background-color: var(--blockbg); margin-bottom: var(--stdpadding); } figure.quote blockquote { margin: 0; } figure.quote figcaption { margin-left: calc(var(--stdpadding) * 3); margin-top: var(--stdpadding); } /* Misc */ img, picture, video { max-width: 100%; } summary:hover { cursor: pointer; } [title] { text-decoration: underline; } [title]:hover { cursor: help; } hr { width: 30%; } /* Funsies */ .serif { font-family: serif; } .flipped { display: inline-block; transform: rotate(180deg); } .rainbowtext { animation-name: rainbow-text; animation-duration: 20s; animation-iteration-count: infinite; } .blinking { animation-name: opacityblink; animation-duration: 2s; animation-iteration-count: infinite; } .minecraftsplash { animation-name: growshrink; animation-duration: 1.5s; animation-iteration-count: infinite; color: yellow; display: inline-block; } .house { color: cornflowerblue; } @keyframes growshrink { 0%, 100% { transform: scale(1) rotate(-10deg); } 50% { transform: scale(1.2) rotate(-10deg); } } @keyframes opacityblink { 0%, 50% {opacity: 0;} 50.001%, 100% {opacity: 1;} } @keyframes rainbow-text { 100%,0%{color: rgb(255,0,0); text-shadow: 0 0 4px rgb(216, 1, 1);} 8%{color: rgb(255,127,0); text-shadow: 0 0 4px rgb(211, 105, 0);} 16%{color: rgb(255,255,0); text-shadow: 0 0 4px rgb(214, 214, 0);} 25%{color: rgb(127,255,0); text-shadow: 0 0 4px rgb(105, 211, 0);} 33%{color: rgb(0,255,0); text-shadow: 0 0 4px rgb(0, 204, 0);} 41%{color: rgb(0,255,127); text-shadow: 0 0 4px rgb(0, 209, 105);} 50%{color: rgb(0,255,255); text-shadow: 0 0 4px rgb(0, 202, 202);} 58%{color: rgb(0,127,255); text-shadow: 0 0 4px rgb(0, 103, 206);} 66%{color: rgb(0,0,255); text-shadow: 0 0 4px rgb(0, 0, 206);} 75%{color: rgb(127,0,255); text-shadow: 0 0 4px rgb(103, 0, 206);} 83%{color: rgb(255,0,255); text-shadow: 0 0 4px rgb(211, 0, 211);} 91%{color: rgb(255,0,127); text-shadow: 0 0 4px rgb(211, 0, 105);} } /* If user is on mobile */ @media only screen and (hover: none) { nav#main-nav { position: initial; top: initial; left: initial; right: initial; height: initial; margin-top: calc(var(--stdpadding) / 2); } h1 { margin-top: initial; } nav a, nav span { flex-grow: 1; } nav a, body > a { border-left: 3px solid var(--fontcolor); background-color: var(--blockbg); } nav a, body > a, nav span { padding: calc(var(--stdpadding) / 2) calc(var(--stdpadding) / 4 * 3); margin: 0 0 calc(var(--stdpadding) / 2) 0; } body > a { margin-left: 0; } :is(main,body,pre) > code { border-width: .1rem; } @media (max-width: 43rem) { .buttons > * { width: 24%; } .buttons > a > img { width: 100%; } } code { font-size: 0.8em; } #leftsidebg, #rightsidebg { top: 0; left: 0; right: 0; bottom: 0; box-shadow: 100vw 0 0 #000000bb inset; } tr:hover { background-color: initial; } td { display: block; } @media (prefers-contrast: more) { #leftsidebg, #rightsidebg { display: none; } } } /* TODO: Light theme @media (prefers-color-scheme: light) { :root { --bgcolor: #dffffa; --fontcolor: #222222; --blockbg: #0001; --blockbghover: #00000022; --stdshadow: #19191977; } } */ @media (prefers-contrast: more) { body { color: white; background-color:#111111; } #leftsidebg, #rightsidebg { display: none; /*box-shadow: 100vw 0 0 #000000ee inset;*/ } a { color: #00ffd5; } } /* TODO: Low contrast theme */ /*@media (prefers-contrast: less) { }*/ @media (prefers-reduced-motion) { * { transition-duration: 0s !important; } }