@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@100..900&display=swap');

:root {
    --color1: #ffffff;
    --color2: #F2B79F;
    --color3: #553D36;
    --color4: #f587f7;
}

::-webkit-scrollbar {
    width: 0.6vw;
    height: 0.6vw;
}

::-webkit-scrollbar-corner {
    display: none;
}

::-webkit-scrollbar-thumb {
    background: purple;
    border-radius: 10px;
}

::-webkit-scrollbar-track {
    background: none;
}

* {
    font-family: "Noto Sans TC", sans-serif;
    box-sizing: border-box;
    word-wrap: break-word;
    word-break: break-word;
    overflow-wrap: break-word;
}

body {
    margin: 0;
    padding: 0;
    font-size: 16px;
    font-weight: 400;
    color: var(--color2);
    background-color: var(--color3);
}

header {
    background-color: var(--color2);
    color: var(--color3);
    height: 96px;
    padding: 0 5%;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: min(8vw, 40px);
    font-weight: 600;
}

header a {
    color: var(--color3);
    text-decoration: none;
}

main {
    margin: 0 auto;
    padding: 1vw 3vw;
    max-width: 600px;
    min-height: calc(100dvh - 160px);
}

footer {
    color: var(--color1);
    text-align: center;
    padding: 20px;
    font-weight: 400;
}

a {
    color: var(--color2);
    word-break: break-all;
    transition: ease-in-out 0.5s;
}

a:hover {
    color: var(--color4);
}

h2, h3, h4, h5, p {
    margin: 2vh 0;
}

h1 {
    margin: 3vh 0;
    font-size: 36px;
    font-weight: 600;
    color: var(--color1);
    text-align: center;
}

h2, .h2 {
    font-size: 32px;
    font-weight: 600;
}

h3, .h3 {
    font-size: 28px;
    font-weight: 600;
}

h4, .h4 {
    font-size: 24px;
    font-weight: 600;
}

h5, .h5 {
    font-size: 20px;
    font-weight: 600;
}

p, .p {
    font-size: 20px;
    font-weight: 400;
}

/* color */

.c1 {
    color: var(--color1);
}

.c2 {
    color: var(--color2);
}

.c3 {
    color: var(--color3);
}

.c4 {
    color: var(--color4);
}

/* display */

.m-0 {
    margin: 0;
}

.mt-1 {
    margin-top: 2dvh;
}

.mt-2 {
    margin-top: 4dvh;
}

.mx-1 {
    margin-left: 10px;
    margin-right: 10px;
}

.mx-2 {
    margin-left: 20px;
    margin-right: 20px;
}

.my-1 {
    margin-top: 10px;
    margin-bottom: 10px;
}

.my-2 {
    margin-top: 20px;
    margin-bottom: 20px;
}

.p-r {
    position: relative;
}

.p-a {
    position: absolute;
}

.d-n {
    display: none;
}

.d-f {
    display: flex;
}

.d-ib {
    display: inline-block;
}

.fd-c {
    flex-direction: column;
}

.jc-c {
    justify-content: center;
}

.jc-sb {
    justify-content: space-between;
}

.ai-c {
    align-items: center;
}

.ai-e {
    align-items: end;
}

.fg-1 {
    flex-grow: 1;
}

.fs-1 {
    flex-shrink: 1;
}

.ta-l {
    text-align: left;
}

.ta-c {
    text-align: center;
}

.ta-r {
    text-align: right;
}

.f-l {
    float: left;
}

.f-r {
    float: right;
}

.l-h-15 {
    line-height: 1.5;
}

/* form */

form {
    max-width: 800px;
    margin: 0 auto;
    padding: 2% 4%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 4dvh;
}

form > h3 {
    margin: 1dvh 0;
    text-align: left;
}

form > div {
    text-align: left;
}

input, textarea {
    width: 100%;
    padding: 10px;
    font-size: 24px;
    border: none;
    border-radius: 10px;
}

input:focus, textarea:focus {
    outline: 3px solid orange;
}

button, select {
    user-select: none;
    cursor: pointer;
    padding: 10px 20px;
    border: none;
    border-radius: 10px;
    font-size: 24px;
    color: var(--color3);
    background-color: var(--color2);
    transition: 1s ease-in-out;
}

button:hover {
    background-color: var(--color4);
}

button + *, a + * {
    margin-left: 10px;
}