main {
    height: 94dvh;
    min-height: max-content;
    margin-top: 1vh;
    margin-left: 2vw;
    margin-bottom: 1vh;
    margin-right: 2vw;

    display: flex;
    flex-direction: column;
    align-items: center;

    /* common design settings for sections */
    section {
        width: 90%;
        min-height: max-content;
        margin-top: 3dvh;
        margin-bottom: 3dvh;
        border-radius: var(--radius-md);

        background-color: var(--color-surface);
    }

    .profileSection {
        min-width: max-content;
        height: 50dvh;
        min-height: max-content;
        /* to make profile avatar locate in the top of infocontainer */
        /* https://developer.mozilla.org/ko/docs/Web/CSS/Reference/Properties/position */
        position: relative;

        background-color: var(--color-accent-soft);

        display: flex;
        flex-direction: column;
        justify-content: end;
        align-items: center;

        img {
            position: absolute;
            top: 5%;
            height: 35%;
            aspect-ratio: 1 / 1;
            border-radius: 9999px;
            background-color: var(--color-accent);
            border: 2px solid var(--color-surface);
        }

        .infoContainer {
            width: 100%;
            height: 70%;
            margin: 0;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;

            border-radius: var(--radius-md);
            background-color: var(--color-surface);

            .locationContainer {
                width: max-content;
                height: max-content;
                padding-left: 1dvw;
                padding-right: 1dvw;
                border-radius: var(--radius-lg);

                display: flex;
                justify-content: center;

                background-color: var(--color-accent-soft);

                p {
                    padding-left: 1dvw;
                    padding-right: 1dvw;
                    color: var(--color-text-secondary);
                }

                p:first-child {
                    border-right: 2px solid var(--color-divider);
                }
            }
        }
    }

    .staticsSection {
        height: 20dvh;
        min-height: max-content;

        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 1dvw;
        background-color: var(--color-bg);

        .staticsContainer {
            grid-column: span 1;

            border-radius: var(--radius-md);

            display: flex;
            justify-content: center;
            align-items: center;
            background-color: var(--color-surface);

            .content {
                width: 60%;
                height: 100%;
                display: flex;
                align-items: center;

                .iconBox {
                    height: 30%;
                    aspect-ratio: 1 / 1;
                    border-radius: var(--radius-lg);
                    display: flex;
                    justify-content: center;
                    align-items: center;

                    font-size: 1.5em;
                    color: var(--color-text-inverse);
                    background-color: var(--color-text-secondary);
                }

                .textBox {
                    margin-left: 2dvw;

                    .status {
                        margin-bottom: 0;
                        color: var(--color-accent);
                    }

                    .info {
                        margin-top: 0;
                        color: var(--color-text-secondary);
                    }
                }
            }
        }
    }

    .detailSection {
        height: max-content;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 3vw;

        .leftContainer {
            grid-column: span 1;
            padding-left: 1dvw;

            span {
                display: flex;
                justify-content: space-between;
                align-items: center;

                p:first-child {
                    font-weight: 700;
                    color: var(--color-text-secondary);
                }
            }

            h2 {
                display: flex;

                i {
                    margin-right: 1dvw;
                    color: var(--color-text-secondary);
                }
            }
        }

        .rightContainer {
            grid-column: span 1;

            h2 {
                display: flex;

                i {
                    margin-right: 1dvw;
                    color: var(--color-text-secondary);
                }
            }

            .externalLink {
                height: 30%;

                display: flex;
                align-items: center;

                .iconBox {
                    height: 50%;
                    aspect-ratio: 1 / 1;
                    border-radius: var(--radius-sm);
                    display: flex;
                    justify-content: center;
                    align-items: center;

                    font-size: 1.5em;
                    color: var(--color-text-inverse);
                    background-color: var(--color-text-secondary);
                }

                .textBox {
                    align-items: center;
                    margin-left: 2vw;

                    .title {
                        margin: 0;
                        color: var(--color-accent);
                    }

                    a {
                        text-decoration: none;
                        margin: 0;
                        color: var(--color-text-secondary);
                    }

                    a:hover {
                        font-weight: bold;
                        color: var(--color-accent-hover);

                    }
                }

            }
        }
    }

    .titleSection {
        background-color: var(--color-bg);
        display: flex;
        justify-content: space-between;
        align-items: center;
        min-height: max-content;

        .buttonContainer {
            grid-column: span 1;
            display: flex;
            justify-content: right;
            align-items: center;

            a {
                width: max-content;
                padding: 1vw;

                text-decoration: none;

                background-color: var(--color-button-secondary-bg);
                color: var(--color-button-secondary-text);

                border-radius: var(--radius-md);
                border: 1px solid var(--color-border);
                box-shadow: var(--shadow-md);

                &:hover {
                    background-color: var(--color-button-secondary-bg-hover);
                }
            }
        }
    }

    .repositoriesSection {
        height: 60dvh;
        min-height: max-content;

        display: grid;
        grid-template-columns: 1fr 1fr;
        grid-template-rows: 1fr 1fr;
        gap: 2vw;
        background-color: var(--color-bg);

        a {
            color: inherit;
            text-decoration: none;
            grid-column: span 1;
            grid-row: span 1;
            padding: 1dvw;
            min-height: max-content;

        }


        .repository {
            grid-column: span 1;
            grid-row: span 1;
            padding: 1dvw;
            height: 100%;
            min-height: max-content;

            display: flex;
            flex-direction: column;
            justify-content: space-between;

            border-radius: var(--radius-md);
            background-color: var(--color-surface);

            .top {
                .title {
                    height: max-content;

                    display: flex;
                    justify-content: space-between;
                    align-items: center;

                    span {
                        display: flex;
                        justify-content: space-between;
                        align-items: center;

                        p:first-child {
                            font-weight: 700;
                            color: var(--color-text-secondary);
                        }
                    }

                    h2 {
                        margin: 0;
                        display: flex;

                        i {
                            margin-right: 1dvw;
                            color: var(--color-text-secondary);
                        }
                    }

                    .tag {
                        padding-left: 1dvw;
                        padding-right: 1dvw;
                        padding-top: 0.5dvh;
                        padding-bottom: 0.5dvh;
                        border-radius: var(--radius-md);

                        font-weight: 700;
                        /* TODO: Dynamically color change */
                        color: var(--color-text-inverse);
                    }
                }

                p {
                    color: var(--color-text-secondary);
                }
            }

            .bottom {

                display: flex;
                justify-content: space-between;
                align-items: center;

                .status {
                    width: 20%;
                    display: flex;
                    justify-content: space-around;
                    align-items: center;
                }
            }
        }
        
            .repository:hover {
                /* move card a little bit up */
                /* https://developer.mozilla.org/ko/docs/Web/CSS/Reference/Properties/transform */
                transform: translateY(-5px);

                box-shadow: var(--shadow-lg)
            }
    }
}