Migration to new site.

This commit is contained in:
2025-02-23 21:51:24 -06:00
parent 58a4b77b90
commit 90e195a670
119 changed files with 9517 additions and 9548 deletions

BIN
assets/sass/.DS_Store vendored

Binary file not shown.

View File

@ -1,83 +0,0 @@
///
/// Identity by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Basic */
// Ensures page width is always >=320px.
@include breakpoint('<=xsmall') {
html, body {
min-width: 320px;
}
}
// Set box model to border-box.
// Based on css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice
html {
box-sizing: border-box;
}
*, *:before, *:after {
box-sizing: inherit;
}
body {
// Stops initial animations until page loads.
&.is-preload {
*, *:before, *:after {
@include vendor('animation', 'none !important');
@include vendor('transition', 'none !important');
}
}
}
html {
height: 100%;
}
body {
height: 100%;
background-color: _palette(bg);
@include vendor('background-image', (
'url("images/overlay.png")',
'linear-gradient(60deg, #{transparentize(_palette(accent1), 0.5)} 5%, #{transparentize(_palette(accent2), 0.65)})',
'url("../../images/bg.jpg")'
));
background-repeat: repeat, no-repeat, no-repeat;
background-size: 100px 100px, cover, cover;
background-position: top left, center center, bottom center;
background-attachment: fixed, fixed, fixed;
&:after {
content: '';
display: block;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: inherit;
opacity: 0;
z-index: 1;
background-color: _palette(bg);
@include vendor('background-image', (
'url("images/overlay.png")',
'linear-gradient(60deg, #{transparentize(_palette(accent1), 0.5)} 5%, #{transparentize(_palette(accent2), 0.65)})'
));
background-repeat: repeat, no-repeat;
background-size: 100px 100px, cover;
background-position: top left, center center;
@include vendor('transition', 'opacity #{_duration(bg)} ease-out');
}
&.is-preload {
&:after {
opacity: 1;
}
}
}

View File

@ -1,76 +0,0 @@
///
/// Identity by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
// Reset.
// Based on meyerweb.com/eric/tools/css/reset (v2.0 | 20110126 | License: public domain)
html, body, div, span, applet, object,
iframe, h1, h2, h3, h4, h5, h6, p, blockquote,
pre, a, abbr, acronym, address, big, cite,
code, del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var, b,
u, i, center, dl, dt, dd, ol, ul, li, fieldset,
form, label, legend, table, caption, tbody,
tfoot, thead, tr, th, td, article, aside,
canvas, details, embed, figure, figcaption,
footer, header, hgroup, menu, nav, output, ruby,
section, summary, time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style:none;
}
blockquote, q {
quotes: none;
&:before,
&:after {
content: '';
content: none;
}
}
table {
border-collapse: collapse;
border-spacing: 0;
}
body {
-webkit-text-size-adjust: none;
}
mark {
background-color: transparent;
color: inherit;
}
input::-moz-focus-inner {
border: 0;
padding: 0;
}
input, select, textarea {
-moz-appearance: none;
-webkit-appearance: none;
-ms-appearance: none;
appearance: none;
}

View File

@ -1,119 +0,0 @@
///
/// Identity by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Type */
body, input, select, textarea {
color: _palette(fg);
font-family: _font(family);
font-size: 14pt;
font-weight: _font(weight);
line-height: 2;
letter-spacing: _size(letter-spacing);
text-transform: uppercase;
@include breakpoint('<=xlarge') {
font-size: 11pt;
}
@include breakpoint('<=xsmall') {
font-size: 10pt;
line-height: 1.75;
}
}
a {
@include vendor('transition', (
'color #{_duration(transition)} ease',
'border-color #{_duration(transition)} ease'
));
color: inherit;
text-decoration: none;
&:before {
@include vendor('transition', (
'color #{_duration(transition)} ease',
'text-shadow #{_duration(transition)} ease'
));
}
&:hover {
color: _palette(highlight);
}
}
strong, b {
color: _palette(fg-bold);
}
em, i {
font-style: italic;
}
p {
margin: 0 0 _size(element-margin) 0;
}
h1, h2, h3, h4, h5, h6 {
color: _palette(fg-bold);
line-height: 1.5;
margin: 0 0 (_size(element-margin) * 0.5) 0;
a {
color: inherit;
text-decoration: none;
}
}
h1 {
font-size: 1.85em;
letter-spacing: (_size(letter-spacing) * 1.1);
margin: 0 0 (_size(element-margin) * 0.35) 0;
}
h2 {
font-size: 1.25em;
}
h3 {
font-size: 1em;
}
h4 {
font-size: 1em;
}
h5 {
font-size: 1em;
}
h6 {
font-size: 1em;
}
@include breakpoint('<=xsmall') {
h1 {
font-size: 1.65em;
}
}
sub {
font-size: 0.8em;
position: relative;
top: 0.5em;
}
sup {
font-size: 0.8em;
position: relative;
top: -0.5em;
}
hr {
border: 0;
border-bottom: solid _size(border-width) _palette(border);
margin: (_size(element-margin) * 2) 0;
}

View File

@ -1,101 +0,0 @@
///
/// Identity by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Actions */
ul.actions {
@include vendor('display', 'flex');
cursor: default;
list-style: none;
margin-left: (_size(element-margin) * -0.5);
padding-left: 0;
li {
padding: 0 0 0 (_size(element-margin) * 0.5);
vertical-align: middle;
}
&.special {
@include vendor('justify-content', 'center');
width: 100%;
margin-left: 0;
li {
&:first-child {
padding-left: 0;
}
}
}
&.stacked {
@include vendor('flex-direction', 'column');
margin-left: 0;
li {
padding: (_size(element-margin) * 0.65) 0 0 0;
&:first-child {
padding-top: 0;
}
}
}
&.fit {
width: calc(100% + #{_size(element-margin) * 0.5});
li {
@include vendor('flex-grow', '1');
@include vendor('flex-shrink', '1');
width: 100%;
> * {
width: 100%;
}
}
&.stacked {
width: 100%;
}
}
@include breakpoint('<=xsmall') {
&:not(.fixed) {
@include vendor('flex-direction', 'column');
margin-left: 0;
width: 100% !important;
li {
@include vendor('flex-grow', '1');
@include vendor('flex-shrink', '1');
padding: (_size(element-margin) * 0.5) 0 0 0;
text-align: center;
width: 100%;
> * {
width: 100%;
}
&:first-child {
padding-top: 0;
}
input[type="submit"],
input[type="reset"],
input[type="button"],
button,
.button {
width: 100%;
&.icon {
&:before {
margin-left: -0.5rem;
}
}
}
}
}
}
}

View File

@ -1,63 +0,0 @@
///
/// Identity by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Button */
input[type="submit"],
input[type="reset"],
input[type="button"],
button,
.button {
@include vendor('appearance', 'none');
@include vendor('transition', (
'background-color #{_duration(transition)} ease-in-out',
'border-color #{_duration(transition)} ease-in-out',
'color #{_duration(transition)} ease-in-out'
));
display: inline-block;
height: _size(element-height);
line-height: _size(element-height);
padding: 0 1.5em;
background-color: transparent;
border-radius: _size(border-radius);
border: solid 1px _palette(border);
color: _palette(fg) !important;
cursor: pointer;
text-align: center;
text-decoration: none;
white-space: nowrap;
&:hover {
border-color: _palette(highlight);
color: _palette(highlight) !important;
}
&.icon {
padding-left: 1.35em;
&:before {
margin-right: 0.5em;
}
}
&.fit {
width: 100%;
}
&.small {
font-size: 0.8em;
}
&.large {
font-size: 1.35em;
}
&.disabled,
&:disabled {
@include vendor('pointer-events', 'none');
opacity: 0.5;
}
}

View File

@ -1,225 +0,0 @@
///
/// Identity by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Form */
form {
margin: 0 0 _size(element-margin) 0;
> :last-child {
margin-bottom: 0;
}
> .fields {
$gutter: (_size(element-margin) * 0.75);
@include vendor('display', 'flex');
@include vendor('flex-wrap', 'wrap');
width: calc(100% + #{$gutter * 2});
margin: ($gutter * -1) 0 _size(element-margin) ($gutter * -1);
> .field {
@include vendor('flex-grow', '0');
@include vendor('flex-shrink', '0');
padding: $gutter 0 0 $gutter;
width: calc(100% - #{$gutter * 1});
&.half {
width: calc(50% - #{$gutter * 0.5});
}
&.third {
width: calc(#{100% / 3} - #{$gutter * (1 / 3)});
}
&.quarter {
width: calc(25% - #{$gutter * 0.25});
}
}
}
@include breakpoint('<=xsmall') {
> .fields {
$gutter: (_size(element-margin) * 0.75);
width: calc(100% + #{$gutter * 2});
margin: ($gutter * -1) 0 _size(element-margin) ($gutter * -1);
> .field {
padding: $gutter 0 0 $gutter;
width: calc(100% - #{$gutter * 1});
&.half {
width: calc(100% - #{$gutter * 1});
}
&.third {
width: calc(100% - #{$gutter * 1});
}
&.quarter {
width: calc(100% - #{$gutter * 1});
}
}
}
}
}
label {
color: _palette(fg-bold);
display: block;
font-size: 0.9em;
margin: 0 0 (_size(element-margin) * 0.5) 0;
}
input[type="text"],
input[type="password"],
input[type="email"],
input[type="tel"],
select,
textarea {
@include vendor('appearance', 'none');
border-radius: _size(border-radius);
border: solid 1px _palette(border);
color: inherit;
display: block;
outline: 0;
padding: 0 1em;
text-decoration: none;
width: 100%;
&:invalid {
box-shadow: none;
}
&:focus {
border-color: _palette(highlight);
}
}
select {
background-image: svg-url("<svg xmlns='http://www.w3.org/2000/svg' width='40' height='40' preserveAspectRatio='none' viewBox='0 0 40 40'><path d='M9.4,12.3l10.4,10.4l10.4-10.4c0.2-0.2,0.5-0.4,0.9-0.4c0.3,0,0.6,0.1,0.9,0.4l3.3,3.3c0.2,0.2,0.4,0.5,0.4,0.9 c0,0.4-0.1,0.6-0.4,0.9L20.7,31.9c-0.2,0.2-0.5,0.4-0.9,0.4c-0.3,0-0.6-0.1-0.9-0.4L4.3,17.3c-0.2-0.2-0.4-0.5-0.4-0.9 c0-0.4,0.1-0.6,0.4-0.9l3.3-3.3c0.2-0.2,0.5-0.4,0.9-0.4S9.1,12.1,9.4,12.3z' fill='#{_palette(border)}' /></svg>");
background-size: 1.25rem;
background-repeat: no-repeat;
background-position: calc(100% - 1rem) center;
height: _size(element-height);
padding-right: _size(element-height);
text-overflow: ellipsis;
option {
color: _palette(fg-bold);
background: _palette(bg);
}
&:focus {
&::-ms-value {
background-color: transparent;
}
}
&::-ms-expand {
display: none;
}
}
input[type="text"],
input[type="password"],
input[type="email"],
select {
height: _size(element-height);
}
textarea {
padding: 0.75em 1em;
}
input[type="checkbox"],
input[type="radio"], {
@include vendor('appearance', 'none');
display: block;
float: left;
margin-right: -2em;
opacity: 0;
width: 1em;
z-index: -1;
& + label {
@include icon(false, solid);
color: _palette(fg);
cursor: pointer;
display: inline-block;
font-size: 1em;
font-weight: _font(weight);
padding-left: (_size(element-height) * 0.6) + 0.75em;
padding-right: 0.75em;
position: relative;
&:before {
background: _palette(border-bg);
border-radius: _size(border-radius);
border: solid 1px _palette(border);
content: '';
display: inline-block;
font-size: 0.8em;
height: (_size(element-height) * 0.75);
left: 0;
line-height: (_size(element-height) * 0.75);
position: absolute;
text-align: center;
top: 0.15em;
width: (_size(element-height) * 0.75);
}
}
&:checked + label {
&:before {
color: _palette(highlight);
content: '\f00c';
}
}
&:focus + label {
&:before {
border-color: _palette(highlight);
}
}
}
input[type="checkbox"] {
& + label {
&:before {
border-radius: _size(border-radius);
}
}
}
input[type="radio"] {
& + label {
&:before {
border-radius: 100%;
}
}
}
::-webkit-input-placeholder {
color: _palette(fg-light) !important;
opacity: 1.0;
}
:-moz-placeholder {
color: _palette(fg-light) !important;
opacity: 1.0;
}
::-moz-placeholder {
color: _palette(fg-light) !important;
opacity: 1.0;
}
:-ms-input-placeholder {
color: _palette(fg-light) !important;
opacity: 1.0;
}

View File

@ -1,33 +0,0 @@
///
/// Identity by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Icon */
.icon {
@include icon;
position: relative;
border-bottom: none;
> .label {
display: none;
}
&:before {
line-height: inherit;
}
&.solid {
&:before {
font-weight: 900;
}
}
&.brands {
&:before {
font-family: 'Font Awesome 5 Brands';
}
}
}

View File

@ -1,60 +0,0 @@
///
/// Identity by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Icons */
ul.icons {
cursor: default;
list-style: none;
padding-left: 0;
margin-top: -0.675em;
li {
display: inline-block;
padding: 0.675em 0.5em;
a {
@include icon-alt(false, true);
position: relative;
display: block;
width: 3.75em;
height: 3.75em;
border-radius: 100%;
border: solid _size(border-width) _palette(border);
line-height: 3.75em;
overflow: hidden;
text-align: center;
text-indent: 3.75em;
white-space: nowrap;
&:before {
position: absolute;
top: 0;
left: 0;
width: inherit;
height: inherit;
font-size: 1.85rem;
line-height: inherit;
text-align: center;
text-indent: 0;
}
&:hover {
border-color: _palette(highlight);
}
}
}
@include breakpoint('<=xsmall') {
li {
a {
&:before {
font-size: 1.5rem;
}
}
}
}
}

View File

@ -1,56 +0,0 @@
///
/// Identity by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* List */
ol {
list-style: decimal;
margin: 0 0 _size(element-margin) 0;
padding-left: 1.25em;
li {
padding-left: 0.25em;
}
}
ul {
list-style: disc;
margin: 0 0 _size(element-margin) 0;
padding-left: 1em;
li {
padding-left: 0.5em;
}
&.alt {
list-style: none;
padding-left: 0;
li {
border-top: solid 1px _palette(border);
padding: 0.5em 0;
&:first-child {
border-top: 0;
padding-top: 0;
}
}
}
}
dl {
margin: 0 0 _size(element-margin) 0;
dt {
display: block;
font-weight: _font(weight-bold);
margin: 0 0 (_size(element-margin) * 0.5) 0;
}
dd {
margin-left: _size(element-margin);
}
}

View File

@ -1,35 +0,0 @@
///
/// Identity by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Footer */
#footer {
@include vendor('align-self', 'flex-end');
width: 100%;
padding: _size(element-margin) 0 0 0;
color: rgba(255,255,255,0.75);
cursor: default;
text-align: center;
.copyright {
margin: 0;
padding: 0;
font-size: 0.9em;
list-style: none;
li {
display: inline-block;
margin: 0 0 0 (0.85em - (_size(letter-spacing) * 2));
padding: 0 0 0 0.85em;
border-left: solid _size(border-width) rgba(255,255,255,0.5);
line-height: 1;
&:first-child {
border-left: 0;
}
}
}
}

View File

@ -1,67 +0,0 @@
///
/// Identity by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Main */
#main {
@include vendor('transform-origin', '50% 50%');
@include vendor('transform', 'rotateX(0deg)');
@include vendor('transition', (
'opacity #{_duration(main)} ease',
'transform #{_duration(main)} ease'
));
@include padding(4.5em, 3em);
background: _palette(bg);
border-radius: _size(border-radius);
cursor: default;
max-width: 100%;
opacity: 0.95;
position: relative;
text-align: center;
width: 27em;
.avatar {
position: relative;
display: block;
margin-bottom: _size(element-margin);
img {
display: block;
margin: 0 auto;
border-radius: 100%;
box-shadow: 0 0 0 1.5em _palette(bg);
}
&:before {
content: '';
display: block;
position: absolute;
top: 50%;
left: -3em;
width: calc(100% + 6em);
height: _size(border-width);
z-index: -1;
background: _palette(border);
}
}
@include breakpoint('<=xsmall') {
@include padding(4em, 2em);
width: 100%;
.avatar {
&:before {
left: -2em;
width: calc(100% + 4em);
}
}
}
body.is-preload & {
@include vendor('transform', 'rotateX(15deg)');
opacity: 0;
}
}

View File

@ -1,36 +0,0 @@
///
/// Identity by HTML5 UP
/// html5up.net | @ajlkn
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
///
/* Wrapper */
#wrapper {
@include vendor('display', 'flex');
@include vendor('align-items', 'center');
@include vendor('justify-content', 'space-between');
@include vendor('flex-direction', 'column');
@include vendor('perspective', '1000px');
position: relative;
min-height: 100%;
padding: _size(element-margin);
z-index: 2;
> * {
z-index: 1;
}
&:before {
content: '';
display: block;
}
@include breakpoint('<=xxsmall') {
padding: (_size(element-margin) * 0.5);
}
body.is-ie & {
height: 100%;
}
}

0
assets/sass/libs/_breakpoints.scss Normal file → Executable file
View File

0
assets/sass/libs/_functions.scss Normal file → Executable file
View File

149
assets/sass/libs/_html-grid.scss Executable file
View File

@ -0,0 +1,149 @@
// html-grid.scss v1.0 | @ajlkn | MIT licensed */
// Mixins.
/// Initializes the current element as an HTML grid.
/// @param {mixed} $gutters Gutters (either a single number to set both column/row gutters, or a list to set them individually).
/// @param {mixed} $suffix Column class suffix (optional; either a single suffix or a list).
@mixin html-grid($gutters: 1.5em, $suffix: '') {
// Initialize.
$cols: 12;
$multipliers: 0, 0.25, 0.5, 1, 1.50, 2.00;
$unit: 100% / $cols;
// Suffixes.
$suffixes: null;
@if (type-of($suffix) == 'list') {
$suffixes: $suffix;
}
@else {
$suffixes: ($suffix);
}
// Gutters.
$guttersCols: null;
$guttersRows: null;
@if (type-of($gutters) == 'list') {
$guttersCols: nth($gutters, 1);
$guttersRows: nth($gutters, 2);
}
@else {
$guttersCols: $gutters;
$guttersRows: 0;
}
// Row.
display: flex;
flex-wrap: wrap;
box-sizing: border-box;
align-items: stretch;
// Columns.
> * {
box-sizing: border-box;
}
// Gutters.
&.gtr-uniform {
> * {
> :last-child {
margin-bottom: 0;
}
}
}
// Alignment.
&.aln-left {
justify-content: flex-start;
}
&.aln-center {
justify-content: center;
}
&.aln-right {
justify-content: flex-end;
}
&.aln-top {
align-items: flex-start;
}
&.aln-middle {
align-items: center;
}
&.aln-bottom {
align-items: flex-end;
}
// Step through suffixes.
@each $suffix in $suffixes {
// Suffix.
@if ($suffix != '') {
$suffix: '-' + $suffix;
}
@else {
$suffix: '';
}
// Row.
// Important.
> .imp#{$suffix} {
order: -1;
}
// Columns, offsets.
@for $i from 1 through $cols {
> .col-#{$i}#{$suffix} {
width: $unit * $i;
}
> .off-#{$i}#{$suffix} {
margin-left: $unit * $i;
}
}
// Step through multipliers.
@each $multiplier in $multipliers {
// Gutters.
$class: null;
@if ($multiplier != 1) {
$class: '.gtr-' + ($multiplier * 100);
}
&#{$class} {
margin-top: ($guttersRows * $multiplier * -1);
margin-left: ($guttersCols * $multiplier * -1);
> * {
padding: ($guttersRows * $multiplier) 0 0 ($guttersCols * $multiplier);
}
// Uniform.
&.gtr-uniform {
margin-top: $guttersCols * $multiplier * -1;
> * {
padding-top: $guttersCols * $multiplier;
}
}
}
}
}
}

0
assets/sass/libs/_mixins.scss Normal file → Executable file
View File

53
assets/sass/libs/_vars.scss Normal file → Executable file
View File

@ -5,36 +5,55 @@
// Duration.
$duration: (
transition: 0.2s,
bg: 1.75s,
main: 1s
transition: 0.2s
);
// Size.
$size: (
border-radius: 4px,
border-width: 1px,
border-radius: 0.35em,
element-height: 2.75em,
element-margin: 1.5em,
letter-spacing: 0.2em
element-margin: 2em,
container-width: 100%
);
// Font.
$font: (
family: ('Source Sans Pro', Helvetica, sans-serif),
family-fixed: ('Courier New', monospace),
weight: 300
weight: 400,
weight-bold: 400
);
// Palette.
$palette: (
bg: #ffffff,
bg-alt: #e1dfe8,
fg: #414f57,
fg-bold: #313f47,
fg-light: #616f77,
border: #c8cccf,
accent1: #ffa596,
accent2: #00e4ff,
highlight: #ff7496
bg: #fff,
fg: #a2a2a2,
fg-bold: #787878,
fg-light: #b2b2b2,
border: #efefef,
border-bg: #f7f7f7,
border2: #dfdfdf,
border2-bg: #e7e7e7,
accent1: (
bg: #49bf9d,
fg: mix(#49bf9d, #ffffff, 25%),
fg-bold: #ffffff,
fg-light: mix(#49bf9d, #ffffff, 40%),
border: rgba(255,255,255,0.25),
border-bg: rgba(255,255,255,0.075),
border2: rgba(255,255,255,0.5),
border2-bg: rgba(255,255,255,0.2)
),
accent2: (
bg: #1f1815,
fg: rgba(255,255,255,0.5),
fg-bold: #ffffff,
fg-light: rgba(255,255,255,0.4),
border: rgba(255,255,255,0.25),
border-bg: rgba(255,255,255,0.075),
border2: rgba(255,255,255,0.5),
border2-bg: rgba(255,255,255,0.2)
)
);

0
assets/sass/libs/_vendor.scss Normal file → Executable file
View File

1705
assets/sass/main.scss Normal file → Executable file

File diff suppressed because it is too large Load Diff

View File

@ -1,26 +0,0 @@
@import 'libs/vars';
@import 'libs/functions';
@import 'libs/mixins';
@import 'libs/vendor';
@import 'libs/breakpoints';
/*
Identity by HTML5 UP
html5up.net | @ajlkn
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
*/
/* Basic */
body {
&:after {
display: none;
}
}
/* Main */
#main {
@include vendor('transform', 'none !important');
opacity: 1 !important;
}