:root {
    --aqua: #00c0c0;
    --teal: #005555;
    --font-beach: "Beach";
    --font-beachvibe: "Beach Vibe";
    --font-kofola: "Kofola Script";
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    width: 100%;
    padding: 16px;
    color: azure;
    font-size: 20px;
    min-height: 100vh;
    overflow-x: hidden;
    background: #fff;
    font-family: Georgia, 'Times New Roman', Times, serif, Garamond, "微软雅黑", sans-serif;
}

@font-face {
    font-family: 'Kofola Script';
    src: url('fonts/KofolaScript.woff2') format('woff2');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Beach Vibe';
    src: url('fonts/Beach\ Vibe.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Beach';
    src: url('fonts/Beach.otf') format('opentype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

a {
    text-decoration: none;
}

p {
    margin: 1rem .25rem;
}

h1 {
    font-size: 3.25rem;
    margin: .5rem 0 .25rem 0;
}

h2 {
    font-size: 2rem;
    color: var(--aqua);
    margin: 2em 0 .25em 0;
    font-family: var(--font-beach);
}

h3 {
    margin-bottom: 1rem;
    padding: .25rem .5rem;
    background-color: #00555588;
}

span {
    font-family: var(--font-kofola);
    color: rgba(255, 255, 255, .7);
}

header {
    width: 100%;
    height: 66vh;
    display: flex;
    color: #fff;
    align-items: center;
    padding: 1rem 1.25rem;
    background-size: cover;
    background-repeat: no-repeat;
    background-color: var(--aqua);
    background-image: url('images/idcard-bg.jpg');
}

nav {
    gap: .5rem;
    width: 100%;
    height: 2vh;
    display: flex;
    fill: var(--teal);
    align-items: center;
    margin-bottom: 16px;
    padding-left: .5rem;
}

#idCard {
    width: 55%;
    margin: 0 auto;
    padding: 1.25rem;
    background: rgba(0, 0, 0, .6);
    box-shadow: 0 8px 10px rgba(0, 0, 0, 0.4);
}

.inner {
    display: block;
    text-align: center;
    align-items: center;
    justify-content: center;
    padding: 1.875rem 1.25rem;
    border: 1.5px solid azure;
}

.inner-content {
    margin: 0 2rem;
}

.flex-btns {
    gap: 1rem;
    display: flex;
    margin: 1rem 0 0 .5rem;
    justify-content: center;
}

.custom-btn {
    z-index: 2;
    border: none;
    color: azure;
    cursor: pointer;
    padding: 4px 11px;
    border-radius: 22px;
    /* font-size: 1em; */
    transition: transform 0.2s ease;
    font-family: var(--font-beachvibe);
    background: linear-gradient(135deg, #5e8c8c66, #9bbbb666);
    box-shadow: 0 6px 8px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.6);
}

.custom-btn:hover {
    transform: scale(1.05);
}

.avatar img {
    width: 10rem;
	border-radius: 100%;
    /* border: .5rem solid #fff; */
	box-shadow: 0px 5px 5px #00000060;
}

#mainBody {
    display: flex;
    margin: 16px 0;
    min-height: 88vh;
    padding: 1.25rem;
    align-items: center;
    background-size: cover;
    justify-content: center;
    background-repeat: no-repeat;
    background-color: var(--aqua);
    background: url('images/mainbody-bg.jpg');
}

.highlight {
    color: var(--aqua);
}

.bio {
    width: 40vw;
    padding: 2rem 0;
}

.contact {
    display: grid;
    row-gap: .25em;
    padding: .5rem 1rem;
    grid-template-columns: 1fr 1fr;
}

.item {
    display: flex;
    fill: var(--aqua);
}

.item-content {
    width: auto;
    transition: transform 0.2s ease;
}

.item-content:hover {
    fill: azure;
    transform: translateY(-2px);
}

.item a {
    font-size: 1.5rem;
    margin-left: .5em;
    color: var(--aqua);
    font-family: var(--font-beachvibe);
}

.item a:hover {
    color: azure;
}

svg {
    width: auto;
    height: 20px;
    display: inline;
}

footer {
    width: 100%;
    height: 4vh;
    display: flex;
    padding: 1.25rem;
    align-items: center;
    justify-content: center;
    background-color: var(--aqua);
}

.site-info {
    font-size: small;
    color: var(--teal);
}

@media (max-width: 1024px) {
    .bio {
    width: 55vw;
    }
}

@media (max-width: 768px) {
    h1 {
        font-size: 2.75rem;
    }

    h2 {
        font-size: 1.75rem;
    }

    span {
        font-size: 16px;
    }

    #idCard {
        width: 90%;
        padding: 1rem;
    }

    .inner {
        padding: 1.75rem 1.25rem;
    }

    .inner-content {
        margin: 0 1rem;
    }

    .avatar img {
        width: 8rem;
    }

    .flex-btns {
        gap: .5rem;
        margin: 1rem 0 0 .25rem;
    }

    .bio {
        width: 75vw;
        font-size: 1.25rem;
    }

    .contact {
        padding: .5rem .5rem;
    }
}