@font-face { font-family: League Spartan; src: url('/static/fonts/league-spartan/LeagueSpartan-ExtraLight.woff2') format('woff2'); font-weight: 200; } @font-face { font-family: League Spartan; src: url('/static/fonts/league-spartan/LeagueSpartan-Light.woff2') format('woff2'); font-weight: 300; } @font-face { font-family: League Spartan; src: url('/static/fonts/league-spartan/LeagueSpartan-Medium.woff2') format('woff2'); font-weight: 400; } @font-face { font-family: League Spartan; src: url('/static/fonts/league-spartan/LeagueSpartan-Regular.woff2') format('woff2'); font-weight: 500; } @font-face { font-family: League Spartan; src: url('/static/fonts/league-spartan/LeagueSpartan-SemiBold.woff2') format('woff2'); font-weight: 600; } @font-face { font-family: League Spartan; src: url('/static/fonts/league-spartan/LeagueSpartan-Bold.woff2') format('woff2'); font-weight: 700; } @font-face { font-family: League Spartan; src: url('/static/fonts/league-spartan/LeagueSpartan-ExtraBold.woff2') format('woff2'); font-weight: 800; } @font-face { font-family: League Spartan; src: url('/static/fonts/league-spartan/LeagueSpartan-Black.woff2') format('woff2'); font-weight: 900; } @media screen { body { margin: 0; } @media (prefers-color-scheme: dark) { * { color: #e8e8e8; } body { background-color: #0b0c0d; } header { border-bottom-color: #b83a33; } h1, h2, h3, h4, h5, h6 { color: white; } a { color: white; transition: color .1s ease-in-out; } a:hover { color: #b83a33; transition: color .2s ease-in-out; } img.logo { --c: #dedede; } nav#menu ul li:not(:first-child) { border-left: 1px solid #1f1f1f; } nav#menu ul li:not(:last-child) { border-right: 1px solid #1f1f1f; } a.external { border-color: #1f1f1f; box-shadow: 0px 5px 10px 2px #000000a0; } a.external:hover { border-color: #1f1f1f; box-shadow: 0px 5px 15px 4px #000000c0; background-color: #e8e8e840; } a.external:active { border-color: #1f1f1f; box-shadow: 0px 5px 20px 2px #000000e0; background-color: #e8e8e8a0; } } @media (prefers-color-scheme: light) { * { color: #252525; } body { background-color: #fffcf6; } header { border-bottom-color: #ed5c54; } h1, h2, h3, h4, h5, h6 { color: black; } a { color: black; transition: color .1s ease-in-out; } a:hover { color: #c8251c; transition: color .2s ease-in-out; } img.logo { --c: #1d1d1d; } nav#menu ul li:not(:first-child) { border-left: 1px solid #f0eade; } nav#menu ul li:not(:last-child) { border-right: 1px solid #f0eade; } a.external { border-color: #f0eade; box-shadow: 0px 5px 10px 2px #0000000f; } a.external:hover { border-color: #bebbb4; box-shadow: 0px 5px 15px 2px #00000040; background-color: #615e5e40; } a.external:active { border-color: #696763; box-shadow: 0px 5px 20px 2px #00000060; background-color: #504e4ea0; } } } * { box-sizing: border-box; font-size: 18px; } body { font-family: League Spartan, sans-serif; } a:not(:hover) { text-decoration: none; } a:hover { text-decoration-style: solid; } body { display: flex; flex-direction: column; min-height: 100vh; } header { margin-top: auto; width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; padding-bottom: 4vh; border-bottom-width: 8px; border-bottom-style: solid; } main { margin-bottom: auto; width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; padding-top: 4vh; } img.logo { max-width: 90vw; max-height: 120px; --t: 4px; padding: calc(18px + var(--t)); background: conic-gradient(from 180deg at top var(--t) right var(--t), #0000 25%, var(--c) 0) var(--i, 200%) 0 /200% var(--i, var(--t)) no-repeat, conic-gradient(at bottom var(--t) left var(--t), #0000 25%, var(--c) 0) 0 var(--i, 200%)/var(--i, var(--t)) 200% no-repeat; transition: background .3s, background-position .3s .3s; } img.logo:hover { --i: 100%; transition: background .3s, background-size .3s .3s; } nav#menu { display: block; overflow-x: auto; max-width: 100%; } nav#menu ul { display: flex; flex-direction: row; justify-content: stretch; list-style-type: none; padding: 1em; } nav#menu ul li { padding: 1em; text-wrap: nowrap; } a.external { text-align: center; padding: 1em; transition: border-color .1s ease-in-out, background-color 1s ease-out -.1s, box-shadow .5s ease-out -.1s; border-width: 2px; border-style: solid; } a.external>span.external-text { display: inline-block; position: relative; transition: ease .5s; text-wrap: nowrap; } a.external>span.external-text::after { content: '\00BB'; position: absolute; opacity: 0; right: -1em; transition: ease .5s; } a.external:hover>span.external-text { padding-right: 1em; } a.external:hover>span.external-text::after { opacity: 1; right: 0; } span.email-me::before { content: '\1F4E7'; margin-right: .5em; } span.visit-log::before { content: '\1F4DC'; margin-right: .5em; }