
@import url('https://fonts.googleapis.com/css2?family=Google+Sans+Code:ital,wght@0,300..800;1,300..800&family=Noto+Sans+TC:wght@100..900&family=Noto+Serif+TC:wght@200..900&display=swap');

/* Black Filter Magic from https://codepen.io/sosuke/pen/Pjoqqp */
@media(prefers-color-scheme: light)
{
    html {
        --fgColor: darkorange;   /* #ff8c00 */
        --fgFilter: brightness(0) invert(71%) sepia(71%) saturate(4840%) hue-rotate(1deg) brightness(105%) contrast(104%);
        --bgColor: white; /* #ffffff */
        --bgFilter: invert(100%) sepia(0%) saturate(0%) hue-rotate(311deg) brightness(107%) contrast(101%);
        --basicBgFilter: blur(100px) brightness(1.0) saturate(0.7);
    }
}

@media(prefers-color-scheme: dark)
{
    html {
        --fgColor: antiquewhite; /* #faebd7 */
        --fgFilter: invert(91%) sepia(12%) saturate(753%) hue-rotate(320deg) brightness(107%) contrast(96%);
        --bgColor: #172145;      /* #172145 */
        --bgFilter: invert(12%) sepia(8%) saturate(6972%) hue-rotate(196deg) brightness(93%) contrast(97%);
        --basicBgFilter: blur(100px) brightness(0.7);
    }
}

html {
    font-size: clamp(16px, 1vw, 36px); /* the origin of everything... */
    scroll-behavior: smooth;
    scrollbar-width: none;
}

* {
    margin: 0;
    box-sizing: border-box;

    font-family: 'Google Sans Code', 'Noto Sans TC';
    letter-spacing: 0.22rem;

    color: var(--fgColor);
}

*::selection {
    color: var(--bgColor);
    background-color: var(--fgColor);
}

img {
    width: 100%;
}

h1, h2, h3, p {
    padding: 0.5rem;
    height: fit-content;
    width: fit-content;
}
h1 {
    padding-left: 0;
    font-size: 3rem;
    font-weight: normal;
}
h2 {
    font-size: 2rem;
}
p {
    white-space: pre-line;
    line-height: 1.7em;
}

/* ::before -> ::after (moving) -> button & contents (z-index=0) */
button {
    border: 0.1em var(--fgColor) solid;
    background-color: transparent;
    position: relative;
    overflow: hidden;
}
button::before, button::after {
    content: '';
    position: absolute;
    inset: 0;
}
button::after {
    background-color: var(--fgColor);
    transition: transform 0.5s cubic-bezier(0.075, 0.82, 0.165, 1);
    z-index: -1;
}
button::before {
    background-color: var(--bgColor);
    z-index: -2;
}
button:hover {
    color: var(--bgColor);
}
button:hover::after {
    transform: scaleX(1);
}

/* - Origin Enumerating */

button[torigin="left"]::after {
    transform-origin: left;
    transform: scaleX(0);
}button[torigin="left"]:hover::after {
    transform: scaleX(1);
}
button[torigin="right"]::after {
    transform-origin: right;
    transform: scaleX(0);
}button[torigin="right"]:hover::after {
    transform: scaleX(1);
}
button[torigin="top"]::after {
    transform-origin: top;
    transform: scaleY(0);
}
button[torigin="top"]:hover::after {
    transform: scaleY(1);
}
button[torigin="bottom"]::after {
    transform-origin: bottom;
    transform: scaleY(0);
}
button[torigin="bottom"]:hover::after {
    transform: scaleY(1);
}

.page {
    padding: 5vmax;
    padding-left: 15vmax;
    height: 100vh;
}

nav {
    user-select: none;
    
    width: 5vmax;

    position: fixed;
    inset: 5vmax 0 0 5vmax;

    img {
        width: 72px;
        filter: var(--fgFilter);
    }
}

nav.hidden {
    transition: filter 0.5s;
    filter: opacity(0) blur(100px);
}

nav.display {
    transition: filter 0.5s;
    filter: opacity(100) blur(0px);
}