@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@300&family=Raleway:wght@700&family=Raleway:wght@100&family=Inter:wght@800&display=swap');@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@300&family=Raleway:wght@700&family=Raleway:wght@100&family=Inter:wght@800&display=swap');@import url('https://fonts.googleapis.com/css2?family=Waiting+for+the+Sunrise&display=swap');@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@300&family=Raleway:wght@700&family=Raleway:wght@100&family=Inter:wght@800&display=swap');@import url('https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap');@import url('https://fonts.googleapis.com/css2?family=Reenie+Beanie&display=swap');@import url('https://fonts.googleapis.com/css2?family=Kiwi+Maru&family=Potta+One&display=swap');:root{
    --gap-home: 1.2rem;
}

/* logo section */

.home-section-front{
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.home-logo-container{
    /* margin-top: -5%; */
    margin-bottom: 2%;
    position: relative;
    width: min(80%, 30rem);
    aspect-ratio: 1;
    display: grid;
}

.home-logo{
    position: fixed;
}

.home-logo-glint{
    z-index: 5;
    mask-image: url("/images/logo/logo_text_mask.png");
    mask-size: 100%;
    width: 100%;
    background-image:
        linear-gradient(105deg, 
            rgba(249,81,79,0) 0%, 
            rgba(249,81,79,0) 10.5%, 
            rgba(255, 255, 255, 0.66) 11%, 
            rgba(255, 255, 255, 0.66) 11.5%, 
            rgba(255,255,255,0) 12%);
    background-size: 2000% 100%;
    animation: gradient 10s -3s linear infinite;
}

#wave-container{
    bottom: 9vh;
    position: relative;
    background-color: #FB80A1;
    display: none;
}

.link-container a:nth-of-type(9n + 1){
    --logo-color: var(--aika_strong);
}
.link-container a:nth-of-type(9n + 2){
    --logo-color: var(--hua_strong);
}
.link-container a:nth-of-type(9n + 3){
    --logo-color: var(--aqua_strong);
}
.link-container a:nth-of-type(9n + 4){
    --logo-color: var(--erity_font);
}
.link-container a:nth-of-type(9n + 5){
    --logo-color: var(--izumi_strong);
}
.link-container a:nth-of-type(9n + 6){
    --logo-color: var(--kana_font);
}
.link-container a:nth-of-type(9n + 7){
    --logo-color: var(--rui_font);
}
.link-container a:nth-of-type(9n + 8){
    --logo-color: var(--chiyo_font);
}
.link-container a:nth-of-type(9n + 9){
    --logo-color: var(--rei_strong);
}

/* content section */

.link-container{
    display: flex;
    flex-flow: row wrap;
    justify-content: center;
    gap: 0.5rem;
    margin-inline: 0.5rem;

    a {
        height: 4rem;
        &:is(:hover, :focus) {
            filter: brightness(0.7);
            transition: 0.1s;
        }
    }
}

.slide-top{
    transition: transform 0.1s;
    &:is(:hover, :focus, :focus-within){
        transform: translateY(-1vh);
    }
}

.front-description{
    max-width: 85%;
    text-wrap: balance;
}

.kickstarter-wrapper{
    border-block: 0.25rem solid var(--aika_strong);
    width: min(85%, 700px);
    border-radius: 5px;
    img{
        display: block;
        width: 100%;
        height: auto;
    }

}

.link-text{
    font-family: 'Open Sans', sans-serif;
    font-size: 1rem;
    width: max-content;
    margin-inline: auto;
}

.main-home{
    grid-row: 1;
    grid-column: 1;

    display: flex;
    flex-direction: row;
    align-content: flex-start;
    padding-block: var(--gap-home);
    gap: var(--gap-home);
}

.home-section-main{
    --white-stop: 52%;
    background-image:
        linear-gradient(170deg, #fff var(--white-stop), #0000 calc(var(--white-stop) + 1px) 0),
        linear-gradient(90deg, var(--aika_strong), var(--aika_font));
    z-index: 1;
    display: grid;
    align-self: stretch;
    padding-block: 1rem;
}

.news-heading, .discord > p{
    font-family: anjaEliane;
    letter-spacing: 1.5px;
    color: var(--logo_dark);
    font-size: 34px;
}

.news-discord-container{
    display: flex;
    gap: 2rem;
    width: 100%;
}

/* articles */

.news-container-home{
    flex-grow: 1;
}

/* discord widget */

.discord{
    display: flex;
    flex-direction: column;
    margin-inline: auto;
    gap: 0.5rem;
}

.discord-container{
    padding: 2px;
    border: 3px solid var(--discord_blue);
    border-radius: 10px;
    background-color: #fff;
}

.discord-widget{
    height: 500px;
    width: min(350px, 90vw);
    display: block;
}

@keyframes gradient {
    0% {
        background-position: 100%;
    }
    100% {
        background-position: 0%;
    }
}

@keyframes wave {
    0% {
        left: 0px;
    }
    50% {
        left: -1900px;
    }
    100% {
        left: 0px;
    }
}

@media screen and (max-width: 1000px) {
    
    .news-discord-container{
        flex-wrap: wrap;
    }
}

@media screen and (max-width: 650px){
    .link-container a{
        height: 3.5rem;
    }
    .news-container-home .article-preview{
        max-width: 95%;
    }
}

/* @media screen and (max-width: 650px) {
    
    .article-container{
        width: 100%;
        flex-wrap: wrap;
    }
} */

@media (prefers-reduced-motion: no-preference) {

    .logo-text-container::after{
        animation: gradient 20s -3s linear infinite;
    }

    #wave-container{
        animation: wave 80s -3s linear infinite;
        display: block;
    }
}

/* staff page */

:root{
    --bottom-distance: 2vh;
}

.main-staff{
    background-color: white;
    padding-inline: 2vw;
    filter: drop-shadow(1px 1px 70px rgba(0,0,0,0.15));
}

.staff-category{
    text-align: center;
    margin-bottom: var(--bottom-distance);
    width: 100%;
}

.category-title{
    /* font-family: 'Raleway', sans-serif; */
    padding: 5px 20px 5px;
    margin-bottom: var(--bottom-distance);
    font-size: 30px;
    display: block;
    color: white;
    /* text-shadow: 1px 4px 5px rgba(0,0,0,0.1); */
    border-radius: 15px;
}

.staff-member-container{
    display: flex;
    justify-content: space-evenly;
    flex-wrap: wrap;
    margin: auto;
    background-color: #FFF6FB;
    padding-top: 2vh;
}

.staff-member{
    font-size: 20px;
    width: min(33%, 30em);
    min-width: 300px;
    margin-bottom: var(--bottom-distance);

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 0.2rem;

    .socials-container {
        padding-top: 1rem;
        margin-top: auto;
        align-self: flex-end;
        .social-media-link {
            --display-size: 48;
            .social-media-icon{
                background-color: var(--member_color);
            }
        }
    }

    .bio {
        text-align: center;
        text-wrap: balance;
        margin-inline: 2ch;
        /* width: 80%; */
    }

    .roles {
        /* font-family: 'Raleway', sans-serif; */
        font-size: 20px;
        color:#282828;
        width: 80%;
    }

    .pronouns{
        font-family: 'Nunito', mozillaTwemoji, sans-serif;
    }
}

.staff-picture{
    border-radius: 50%;
    width: 100%;
    border: solid 0.3vw white;
    outline: solid max(0.3vw, 5px) var(--member_color);;
    /* background-color: white; */
    grid-row:1;
    grid-column:1;
}

.picture-and-icon{
    display: grid;
    place-items: center;
    grid-row:1;
    grid-column:1;
    width: min(60%, 200px);
    aspect-ratio: 1;
}

@property --role-icon-url {
    syntax: "<url>";
    inherits: true;
}

.role-icon{
    width: 30%; /* 30% of the picture's size */
    grid-row: 1;
    grid-column: 1;
    background-color: var(--member_color);
    border: 3px solid var(--member_color);
    /* border-radius: 50%; for some reason removing this fixes a problem with ugly edges on the icons*/ 
    position: relative;
    inset: 38%;
    mask-size:100%;
    aspect-ratio: 1;
    -webkit-mask-image: var(--role-icon-url);
    mask-image: var(--role-icon-url);
}

.role-icon-backdrop {     
    width: calc(30% - 2px); /* 30% of the picture's size -2 px to avoid ugly border */
    grid-row: 1;
    grid-column: 1;
    position: relative;
    inset: 38%;
    border-radius: 50%;
    border: 3px solid transparent;
    background-color: white;
    aspect-ratio: 1;
}

#heading-container{
    display: flex;
    justify-content: center;
}

.circle-text{
    grid-row:1;
    grid-column:1;
    fill: var(--member_color);
    height: auto;
    width: calc(1.45 * min(60%, 200px) + max(0.3vw, 5px)); /* 1.45 times the width of the circle plus the width of the outline */
    stroke: var(--member_color);
    stroke-width: 0;
    /* animation: name-enter 0.7s; this is kinda unnecessary and doesn't even look that good */
}

@keyframes name-enter {
    0% {
        rotate: 90deg;
        opacity: 0;
    }
    100% {
        rotate: 0deg;
        opacity: 1;
    }
}

.icon-and-text{
    display: grid;
    place-items: center;
    margin-bottom: max(-10%, -5vw);
}

text{
    font-family: anjaEliane, sans-serif;
    font-weight: 200;
}

/* Generated by http://responsive-css.spritegen.com Responsive CSS Sprite Generator */

.staff-role-icon { 
    max-width: 100%; 
    mask-size: 100%; 
    mask-image: url('/images/staff_icons/spritesheet.png'); 
    mask-mode: luminance;
    background-color: hotpink;
    width: 30%; /* 30% of the picture's size */
    grid-row: 1;
    grid-column: 1;
    background-color: var(--member_color);
    border: 3px solid var(--member_color);
    border-radius: 50%; 
    /* for some reason removing this fixes a problem with ugly edges on the icons  */
    position: relative;
    inset: 38%;
    aspect-ratio: 1;
}

.staff-role-icon-writer { mask-position: 0 0%; mask-size: 100%; }

.staff-role-icon-animation { mask-position: 0 16.773367%; mask-size: 100.78125%; }

.staff-role-icon-composer { mask-position: 0 33.418694%; mask-size: 100.78125%; }

.staff-role-icon-graphics { mask-position: 0 50.06402%; mask-size: 100.78125%; }

.staff-role-icon-lotus { mask-position: 0 66.709347%; mask-size: 100.78125%; }

.staff-role-icon-lyrics { mask-position: 0 83.354673%; mask-size: 100.78125%; }

.staff-role-icon-timetune { mask-position: 0 100%; mask-size: 100.78125%; }

/* Generated by http://responsive-css.spritegen.com Responsive CSS Sprite Generator */

.staff-profile-icon{ 
    max-width: 100%; 
    background-size: 100%; 
    background-image: url('/images/staff/spritesheet.png');
    border-radius: 50%;
    width: 100%;
    border: solid 0.3vw white;
    outline: solid max(0.3vw, 5px) var(--member_color);
    grid-row:1;
    grid-column:1;
}

.staff-profile-icon-envy { background-position: 0 0%; background-size: 100%; }

.staff-profile-icon-geiky { background-position: 0 14.285714%; background-size: 100%; }

.staff-profile-icon-jenn { background-position: 0 28.571429%; background-size: 100%; }

.staff-profile-icon-jun { background-position: 0 42.857143%; background-size: 100%; }

.staff-profile-icon-keiko { background-position: 0 57.142857%; background-size: 100%; }

.staff-profile-icon-lotus { background-position: 0 71.428571%; background-size: 100%; }

.staff-profile-icon-ohara { background-position: 0 85.714286%; background-size: 100%; }

.staff-profile-icon-andy { background-position: 0 100%; background-size: 100%; }

@media screen and (max-width: 650px) {
    
    .staff-member{
        width: 100%;
    }

    .bio{
        font-size: 16px !important;
    }
  }

@media screen and (max-width: 1100px) {
    
  }/* html{
    overflow: hidden;
} */

:root{
    --shrink-amount: 0;
}

.maindiv2{
    /* background-color: white; */
    /* height: 100vh; */
    /* -webkit-filter: drop-shadow(1px 1px 70px rgba(0,0,0,0.15)); */
    /* filter: drop-shadow(1px 1px 70px rgba(0,0,0,0.15)); */
    /* display: flex;
    flex-direction: column;
    justify-content: center; */
    /* width: 80% !important; */

    display: grid;
    min-height: 100svh;
    height: 100%;
    width: 100%;
    place-items: center;
}


#idol-container-container{
    /* top ten best class names */
    display: grid;
    grid-template-rows: 1fr;
    height: var(--img_height);
    margin: auto;
    /* margin-bottom: 25vh; */

    --width-modifier: 0.85;
    --idol_width: calc(var(--img_width)/9);
    --b: calc((9 * var(--idol_width) - var(--width-modifier) * var(--div-width)) / 8);
    --end-to-start: calc(var(--idol_width) - 2 * var(--b));
    transform: scale(calc(1 - var(--shrink-amount)));
    /* border: calc(var(--idol_width) - 2 * var(--b)) solid red; */

    grid-template-columns:

        [start-1] calc(var(--idol_width) - var(--b))
        [start-2] var(--b)
        [end-1] calc(var(--idol_width) - 2 * var(--b))
        [start-3] var(--b)
        [end-2] calc(var(--idol_width) - 2 * var(--b))
        [start-4] var(--b)
        [end-3] calc(var(--idol_width) - 2 * var(--b))
        [start-5] var(--b)
        [end-4] calc(var(--idol_width) - 2 * var(--b))
        [start-6] var(--b)
        [end-5] calc(var(--idol_width) - 2 * var(--b))
        [start-7] var(--b)
        [end-6] calc(var(--idol_width) - 2 * var(--b))
        [start-8] var(--b)
        [end-7] calc(var(--idol_width) - 2 * var(--b))
        [start-9] var(--b)
        [end-8] calc(var(--idol_width) - var(--b))
        [end-9];

    grid-row: 1;
    grid-column: 1;
}

#gimmick-solution{
    height: 0px;
    position: absolute;
    width: var(--end-to-start);
}

.idol-name{
    position: absolute;
    font-family: 'Raleway', sans-serif;
    text-shadow: 1px 4px 5px rgba(0,0,0,0.1);
    font-size: 45px;
    width: calc(var(--img_width)/9);
    opacity: 0;
    pointer-events: none;
}

#logo-container img{
    height: 30vh;
}

.image-link{
    display: flex;
    justify-content: center;
    opacity: 0;
    transition: inherit;
}

.render{
    object-fit: none;
    width: calc(var(--img_width)/9);
    height: var(--img_height);
    filter: drop-shadow(1px 1px 20px var(--idol_color));
}

.idol-container {
    width: calc(var(--img_width)/9);
    height: var(--img_height);
    grid-row: 1;
}

.render-container {
    -webkit-mask-image: url("../images/idols/idol_sprites_small.png");
    mask-image: url("../images/idols/idol_sprites_small.png");
    mask-repeat: no-repeat;
    transition: 0.2s;
    background-color: var(--idol_color);
}

.render-container-wrapper{
    /* bro who are the 30% using browsers that need the prefix... i need answers */
    --_mask_url: url("../images/misc/circle.png");
    -webkit-mask-image: var(--_mask_url);
    mask-image: var(--_mask_url);
    -webkit-mask-size: 1300%;
    mask-size: 1300%;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
}

.render-container:is(:hover, :focus-within) > .image-link{
    opacity: 1;
}

.render-container:is(:hover, :focus-within) + h5{
    opacity: 1;
}

@keyframes idol-enter{

    0%{
        opacity: 0;
        mask-size: 0%;
        -webkit-mask-size: 0%;
        transform: translateY(-100px);
    }

    10% {
        opacity: 1;
        mask-size: 20%;
        -webkit-mask-size: 20%;
        transform: translateY(-100px);
    }

    75%{
        opacity: 1;
        mask-size: 20%;
        -webkit-mask-size: 20%;
        transform: translateY(0px);
    }

    99% {
        opacity: 1;
        mask-size: 300%;
        -webkit-mask-size: 300%;
        transform: translateY(0px);
    }

    100%{
        mask-size: 3000%;
        -webkit-mask-size: 3000%;
    }
}

@keyframes idol-enter2{

    0%{
        opacity: 0;
        mask-size: 0%;
        -webkit-mask-size: 0%;
        /* transform: translateY(-100px); */
    }

    20% {
        opacity: 1;
        mask-size: 20%;
        -webkit-mask-size: 20%;
        /* transform: translateY(-100px); */
    }

    40%{
        opacity: 1;
        mask-size: 20%;
        -webkit-mask-size: 20%;
        /* transform: translateY(0px); */
    }

    99% {
        opacity: 1;
        mask-size: 500%;
        -webkit-mask-size: 500%;
        /* transform: translateY(0px); */
    }

    100%{
        opacity: 1;
        mask-size: 1300%;
        -webkit-mask-size: 1300%;
    }
}

@media (prefers-reduced-motion: no-preference) {
    .render-container-wrapper {
        opacity: 0;
        animation: idol-enter2 1.4s;
        animation-delay: inherit;
        animation-fill-mode: forwards;
    }
}

/* for loops in css when */
#idol-container-container > .idol-container:nth-of-type(1) .render-container{
    -webkit-mask-position-x: calc(var(--img_width) / 9 * 0);
    mask-position: calc(var(--img_width) / -9 * 0);
}

#idol-container-container > .idol-container:nth-of-type(2) .render-container{
    -webkit-mask-position-x: calc(var(--img_width) / 9 * 1);
    mask-position: calc(var(--img_width) / -9 * 1);
}

#idol-container-container > .idol-container:nth-of-type(3) .render-container{
    -webkit-mask-position-x: calc(var(--img_width) / 9 * 2);
    mask-position: calc(var(--img_width) / -9 * 2);
}

#idol-container-container > .idol-container:nth-of-type(4) .render-container{
    -webkit-mask-position-x: calc(var(--img_width) / 9 * 3);
    mask-position: calc(var(--img_width) / -9 * 3);
}

#idol-container-container > .idol-container:nth-of-type(5) .render-container{
    -webkit-mask-position-x: calc(var(--img_width) / 9 * 4);
    mask-position: calc(var(--img_width) / -9 * 4);
}

#idol-container-container > .idol-container:nth-of-type(6) .render-container{
    -webkit-mask-position-x: calc(var(--img_width) / 9 * 5);
    mask-position: calc(var(--img_width) / -9 * 5);
}

#idol-container-container > .idol-container:nth-of-type(7) .render-container{
    -webkit-mask-position-x: calc(var(--img_width) / 9 * 6);
    mask-position: calc(var(--img_width) / -9 * 6);
}

#idol-container-container > .idol-container:nth-of-type(8) .render-container{
    -webkit-mask-position-x: calc(var(--img_width) / 9 * 7);
    mask-position: calc(var(--img_width) / -9 * 7);
}

#idol-container-container > .idol-container:nth-of-type(9) .render-container{
    -webkit-mask-position-x: calc(var(--img_width) / 9 * 8);
    mask-position: calc(var(--img_width) / -9 * 8);
}

.white-bg{
    width: 80%;
    margin-inline: auto;
    background-color: white;
    height: 100%;
    min-height: 100svh;
    grid-row: 1;
    grid-column: 1;
}

#idol-nav-select{
    display: none;
    flex-direction: column;
    gap: 0.8rem;
    grid-row: 1;
    grid-column: 1;
    width: max(50%, 300px);
    margin-block: 1rem;
    .idol-button-wrapper {
        filter: none;
        
    }
    .idol-button{
        display: grid;
        grid-template-columns: 5rem 1fr;
        aspect-ratio: unset;
        width: auto;
    }
    .idol-button-wrapper .idol-button > .idol-nav-face{
        filter: none;
    }
    .idol-button {
        clip-path: none;
    }
    .idol-select-text-logo{
        /* height: 5rem; */
        height: 5rem;
        margin-inline: auto;
        background-image: var(--link);
        width: 100%;
        background-size: contain;
        background-repeat: no-repeat;
        background-position: center;
    }
    .idol-nav-face{
        --size: 5rem;
        height: var(--size);
        width: var(--size);
        
    }
}

@media screen and (max-width: 1150px) {
    #idol-container-container{
        display: none;
    }
    #idol-nav-select{
        display: flex;
    }
}

@media screen and (max-width: 450px) {
    .white-bg{
        width: 100%;
    }
}
/* body {
    background-color: white;
    padding-top: 70px;
} */

:root{
    --backdrop-font-size: 70px;
    --clr_line_start: var(--clr_strong);
    --clr_line_end: var(--clr_light);
}

@property --corner-move-time {
    syntax: "<time>";
    inherits: true;
    initial-value: 0.3s;
}

.main-idol{
    /* padding-top: var(--header-height); */
    min-height: 100svh;
    --icon_url: url("/images/idols/idol_icon128.ss.png");
    width: 100%;
    transition: background-color 0.5s;
}

#main{
    --main-start-width: calc(2 * 68vw / (2 + 3 + 3 * 1.7));
    --main-1-width: calc(3 * 68vw / (2 + 3 + 3 * 1.7));
    --image_width: 6939;
    --image_height: 176;
    display: grid;
    grid-template-columns: 
    [full-start] 15%
    [main-start] var(--main-start-width) 
    [main-1] var(--main-1-width)
    [main-2] 2%
    [main-3] 1.7fr
    [main-4] 1.7fr
    [main-5] 1.7fr
    [main-end] 15%
    [full-end];
    grid-template-rows: 
    calc((var(--main-start-width) + var(--main-1-width)) * var(--image_height) / (var(--image_width) / 9))
    min-content
    4vh
    4vh
    4vh
    45vh
    1fr
    ;
    overflow-x: hidden;
}

#idol-render{
    grid-row: 1 / -1;
    grid-column: main-3 / main-end;
    margin-left: calc(100% *(1.7/2)/(3*1.7));
    /* half of main-3 */
    /* padding-top: calc(18vh/4);  */
    /* 1/4th of the first row */
}

.backdrop-idol{
    background-color: var(--clr_strong);
    grid-row: 1 / -3;
    grid-column: main-3;
    z-index: -1;
    display: grid;
    place-items: center top;
    /* height: 70%; */
    /* height: calc(100% - 1rem); */
    container-type: inline-size;
    min-width: 125px;
    animation: enter-top 0.4s;
    
}

.transition-color{
    --transition-time: 0.35s;
    transition: background-color var(--transition-time), color var(--transition-time);
    * {
        transition: background-color var(--transition-time), color var(--transition-time);
    }
}

@keyframes enter-top {
    0% {
        transform: translateY(-100%);
    }
    100% {
        transform: translateY(0%);
    }
}

@container (max-width: calc(70px * 0.8 * 3)){
    #text-rotate{
        font-size: calc(125cqw / 3) !important
    }
}

#text-rotate{
    rotate: 180deg;
    writing-mode: vertical-rl;
    font-family: 'Raleway', sans-serif;
    font-size: var(--backdrop-font-size);
    text-align: right;
    color:white;    
    line-height: 80%;
    text-transform: uppercase;
    width:80%;
    margin:auto;
    margin-top: 10%;
}

#hacky-idiot-solution{
    color: #0000;
}

.bg-container{
    grid-row: 4 / -1;
    grid-column: full-start / full-end;
    background-color: var(--clr_light);
    z-index: -99;
}


.idol-logo-text-wrapper{
    grid-column: main-start / main-2;
    grid-row: 1;
    /* margin: 1rem; */
}

.idol-logo-text{
    
    width: 100%;
    max-width: 100%;
    max-height: 100%;
    height: 100%;
    background-image: url("/images/idols/logo_main771.ss.png");
    --image_width: 6939;
    --image_height: 176;

    aspect-ratio: calc(var(--image_width) / 9)/var(--image_height);

    background-size: 900%;
    background-repeat: no-repeat;
    background-position: calc(var(--icon_index) * 100% / 8 + var(--text_logo_offset) * 1px) 0%;
}

#information-column{
    grid-column: main-start / main-2;
}

#idol-information{
    grid-column: main-start / main-2;
    grid-row: 2;
    padding: 5%;
    display: grid;
    /* flex-flow: row wrap; */
    /* align-items: flex-start; */
    grid-template-columns: repeat(2, 50%);
    
    gap: 1rem;
    > *{
        --wait-time: calc(var(--corner-move-time) + var(--sky-opacity-time));
        animation:
            fade-in-idle var(--wait-time),
            fade-in 0.5s var(--wait-time);
    }
    >*:last-child{
        grid-column: span 2;
    }
}

#idol-information, .idol-description{
    position: relative;
}

#idol-information::before
/* .idol-description::after */{
    content:'';
    display: block;
    position: absolute;
    background-color: var(--clr_strong);
    --size: max(8%, 30px);
    width: var(--size);
    aspect-ratio: 1;
    --thickness: 25%;

    animation: fly-to-corner ease-in-out var(--corner-move-time);
    transform: translate(calc(var(--dir) * 500%), calc(var(--dir) * 500%));
    animation-fill-mode: forwards;
    animation-delay: var(--sky-opacity-time);
}

#idol-information::before{
    --dir: 1;
    top: 0;
    left: 0;
    clip-path: polygon(
        0% 0%, 
        100% 0%,
        100% var(--thickness), 
        var(--thickness) var(--thickness), 
        var(--thickness) 100%, 
        0% 100%
        );
    
}

@property --extra-delay {
    syntax: "<time>";
    inherits: true;
    initial-value: 0s;
}

.idol-slide-in-lr {
    animation:
        slide-in-lr-idle calc(var(--sky-opacity-time) + var(--corner-move-time) + var(--extra-delay)),
        slide-in-lr 0.5s calc(var(--sky-opacity-time) + var(--corner-move-time) + var(--extra-delay));
}

@keyframes slide-in-lr {
    0% {
        transform: translateX(-12rem);
        opacity: 0;
    }
    100% {
        transform: translateX(0rem);
        opacity: 1;
    }
}

@keyframes slide-in-lr-idle {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 0;
    }
}

@keyframes fly-to-corner {
    0% { transform: translate(calc(var(--dir) * 500%), calc(var(--dir) * 500%));}
    100% { transform: translate(calc(var(--dir) * 0%), calc(var(--dir) * 0%));}
}
/* TODO: Fix :-) */
/* 
.idol-description::after{
    --dir: -1;
    top: calc(3 * var(--size));
    left: calc(100% - var(--size));
    clip-path: polygon(
        calc(100% - var(--thickness)) 0%, 
        100% 0%, 
        100% 100%,
        0% 100%,
        0% calc(100% - var(--thickness)),
        calc(100% - var(--thickness)) calc(100% - var(--thickness))
        );
} */

.redacted{
    font-style: normal;
    font-family: Consolas;
    color: darkgray !important;
    font-weight: 300;
}

.quote-box{
    grid-row: 3 / 5;
    grid-column: main-1;
    background-color: var(--clr_strong);
    color: white;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cv-text{
    font-family: 'Raleway', sans-serif;
    font-size: 38px;
    font-weight: bold;
    margin-block: auto;
}

.cv-box{
    grid-row: 3 / 5;
    grid-column: main-1;
    background-color: var(--clr_strong);
    color: white;
    position: relative;
    display: grid;
    align-items: center;
}

.quote-text{
    font-style: italic;
    margin-top: 10px;
    position: absolute;
}

.quote-box::after{
    content: "";
    background-image: var(--icon_url);
    background-size: auto 100%;
    background-position: calc(var(--icon_index) * 100% / 8) 0;
    --size: 25%;
    width: var(--size);
    display: block;
    position: absolute;
    left: calc(100% - var(--size));
    bottom: 60%;
    aspect-ratio: 1;
}

.quote{
    font-family: 'Raleway', sans-serif;
    font-weight: bold;
}

.quote::before, .quote::after{
    font-family: 'Raleway', sans-serif;
}

.quote::before{
    content: '\201c';
}

.quote::after{
    content: '\201d';
}

#attributes{
    font-family: 'Open Sans', sans-serif;
    font-size: 16px;
    width: 100%;
    text-align: left;
}

.idol-description{
    padding-inline: 5%;
    text-align: left;
    grid-row: 6;
    grid-column: main-start / main-2;
    /* display: flex;
    flex-direction: column; */
}

.cv{
    /* position: absolute; */
    margin-top: 10px;
    font-size: 30px;
    font-family: Arial, Helvetica, sans-serif;
    font-weight: bold;
    color: var(--clr_strong);
    background-color: white;
    width: max-content;
    padding: 0.3em;
    border-radius: 10px;
    border: 1px solid;
}

.about{
    font-family: Arial, Helvetica, sans-serif;
    font-style: italic;
    font-weight: bold;
    font-size: 40px;

    grid-row: 4 / 6;
    grid-column: main-start;

    margin-block: auto;
    margin-left: calc(5%/0.4); /* 5% to match #description but divided by 0.4 since it's in a smaller column */
    /* wtf is bro talking about */
    text-align: left;
}

#idol-name{
    font-size: 36px;
    margin-bottom: 10px;
}
.info{
    font-family: Arial, Helvetica, sans-serif;
    font-style: italic;
    font-weight: bold;
    font-size: 18px;
    text-align: left;
    margin-bottom: 10px;
    flex-basis: 10%;
    margin-inline: 0;
}

.value{
    color: var(--clr_strong);
    font-size: 23px;
    font-weight: bold;
}

.bg-lines-1{
    grid-row: 1 / 3;
    grid-column: main-4 / main-end;
    overflow:hidden;
    margin:50px;
    z-index:-99;
}

.lines{
    background-image: url('/images/svg/dfi-lines.svg');
    background-repeat: no-repeat;
    background-position: right; 
    height: 100%;
}

.bg-circle {
    grid-column: main-1 / main-4;
    grid-row: 2 / 4;
    z-index: -100;
    position: relative;
    /* --radius: 30%; */
    --radius: 10rem;
    background: radial-gradient(circle at bottom, var(--clr_soft) var(--radius), #0000 calc(var(--radius) + 1px));
}

#idol-footer{
    width: 100%;
    position: fixed;
    bottom: 13vh;
}

#idol-nav{
    /* width: 100%; */
    display: flex;
    flex-direction: row;
    justify-content: center;
    position: fixed;
    opacity: 30%;
    transition: opacity 0.2s;
    z-index: 1;
    bottom: 1rem;
    gap: 0.5rem;
    /* sort of hacky way to center horizontally */
    left: 50%;
    transform: translateX(-50%);
    
}

#idol-nav-mobile{
    width: min(20%, 100px);
    right: 0;
    bottom: 0;
    margin:0.5em;
    position: fixed;
    transition: 0.2s;
    z-index: 1;
    display: none;
}

.idol-button-image{
    width: 100%;
    border: 0.3vw solid white;
    border-radius: 50%;
    background-color: white;
}

#idol-nav:is(:hover, :focus-within){
    opacity: 100%;
}

.idol-button-wrapper{
    -webkit-filter: drop-shadow(1px 1px 20px rgba(0,0,0,0.2));
    filter: drop-shadow(1px 1px 20px rgba(0,0,0,0.2));
}

.idol-button{
    display: block;
    list-style: none;
    width: 5rem;
    aspect-ratio: 1;    
    clip-path: circle(50%);
}

.idol-button2{
    list-style: none;
    width: calc(45vw/9);
    margin: 0.2vw;
    -webkit-filter: drop-shadow(1px 1px 50px rgba(0,0,0,0.5));
    filter: drop-shadow(1px 1px 50px rgba(0,0,0,0.5));
}

.idol-button > .idol-nav-face{
    filter: brightness(30%);
}

.idol-button:is(:hover, :focus-within){

    -webkit-filter: drop-shadow(1px 1px 20px rgba(255,255,255,0.4));
    filter: drop-shadow(1px 1px 20px rgba(255,255,255,0.4));
    z-index: 2;

}

.idol-button:is(:hover, :focus-within) > .idol-nav-face{

    filter: brightness(100%);
    cursor: pointer;

}

#text-wrapper{
    display: none;
    border: 1px solid red;
}

/* Generated by http://responsive-css.spritegen.com Responsive CSS Sprite Generator */
 
.idol-nav-face{ 
    max-width: 100%; 
    background-size: 100%; 
    background-image: url('/images/idols/facesSprites.png'); 
    width: 100%;
    border: 0.35rem solid var(--color-main);
    border-radius: 50%;
    background-color: var(--color-soft);
    transition: filter 0.1s;
}
 
.idol-nav-face-aika { background-position: 0 0%; background-size: 100%; }
.idol-nav-face-aqua { background-position: 0 12.5%; background-size: 100%; }
.idol-nav-face-chiyo { background-position: 0 25%; background-size: 100%; }
.idol-nav-face-erity { background-position: 0 37.5%; background-size: 100%; }
.idol-nav-face-hua { background-position: 0 50%; background-size: 100%; }
.idol-nav-face-izumi { background-position: 0 62.5%; background-size: 100%; }
.idol-nav-face-kana { background-position: 0 75%; background-size: 100%; }
.idol-nav-face-rei { background-position: 0 87.5%; background-size: 100%; }
.idol-nav-face-rui { background-position: 0 100%; background-size: 100%; }

@media screen and (max-width: 1200px) and (min-width: 650px) {
    #main{
        grid-template-rows: 
        calc((var(--main-start-width) + var(--main-1-width)) * var(--image_height) / (var(--image_width) / 9))
        min-content
        4vh
        4vh
        4vh
        4vh
        45vh
        1fr
        ;
    
    }
    .about {
        grid-row: 5/7;
    }

    .quote-box {
        grid-column: main-start / main-2;
    }

    .idol-description {
        grid-row: 7;
    }


    
}


@media screen and (max-width: 650px) {

    body{
        padding-top:0px;
    }

    #idol-information{
        display: flex;
        flex-flow: column wrap;
    }
    
    #main{
        grid-template-columns: 
        [main-start] 20% /* these should sum to like 55% */
        /* no they don't? */
        [main-1] 20%
        /*[main-2] 2%*/
        [main-3] 20% /* 20% */
        [main-4] 25% /* 25% */
        /* [main-5] 1.7fr */
        [main-end];
        grid-template-rows: 
        10vh
        min-content
        8vh
        4vh
        4vh
        45vh
        1fr
        ;
        overflow-x: hidden;
        
    
    }

    .bg-circle{
        grid-column: main-start / main-4;
        grid-row-start: 4;
    }

    .idol-button{
        display: none;
        width: auto;
    }

    #current{
        display: block;
    }

    #idol-nav{
        display: none;
    }

    .backdrop-idol{
        grid-row: 2 / 4;
        height: 100%;
    }

    #text-rotate{
        font-size: 50px;
    }

    #description{
        grid-column: main-start / main-4;
        /* display: flex;
        flex-direction: column; */
        font-size:15px;
        text-align: justify;
    }

    .bg-container{
        grid-column: main-start / full-end;
    }

    .cv{
        position: static;
        font-size:20px;
    }

    #idol-render{
        grid-row: 2 / -1;
        max-width: 180%;
        padding-left: 0;
    }

    .idol-logo-text{
        grid-column: 1 / 6;
    }

    #idol-information{
        grid-column: main-start / main-3;
        flex-flow: column nowrap;
    }

    .info{
        font-size: 14px;
    }

    .value{
        font-size:16px;
    }

    .quote-box {
        grid-column: main-start / main-3;
        grid-row: 3;
        margin: 0 5% 5%;
    }

    .idol-description{
        padding: 0;
        margin-left: 0.75rem;
    }

    /* .idol-description-text{
        text-wrap: balance;
    } */

    #text-wrapper{
        /* margin-right: 0.75rem;  */
        /* i wish i knew why this exact value worked but i dont really have any clue */
        shape-outside: var(--idol-url);
        shape-margin: 5px;
        float: right;
        display: block;
        position:relative;
    }

    #idol-information::before,
    .idol-description::after{
        display: none;
    }

    #idol-nav-mobile{
        display: block;
    }

    :modal {
        background-color: beige;
        border: 2px solid burlywood;
        border-radius: 5px;
        margin: auto;
        height: 90vh;
        width: 80vw;
      }
      
      #modal-inner{
          width: 100%;
          height: 100%;
      }
    
}

@property --clr_main {
    syntax: "<color>";
    inherits: true;
}
@property --color-loading {
	syntax: "<color>";
	inherits: true;
	initial-value: red;
}

@property --radius-loading {
	syntax: "<length>";
	inherits: true;
	initial-value: 24px; /* for whatever reason the property does not work correctly if the inital value uses rem or em */
}

.loading{
	--color-loading: var(--logo_dark);
	background-image: conic-gradient(from 0deg at 50% 50%, #0000 25%, var(--color-loading) 100%);
	aspect-ratio: 1;
	width: calc(2 * var(--radius-loading));
	mask-image: radial-gradient(circle, #0000 calc(0.8 * var(--radius-loading)), #fff calc(0.8 * var(--radius-loading)) var(--radius-loading), #0000 var(--radius-loading) 0);
	margin: auto;
	animation: loading-spin 1s linear infinite;
}

.loading-big{
	--radius-loading: 2.5rem;
}

@keyframes loading-spin {
	from {
		rotate: 0deg;
	}
	to{
		rotate: 360deg;
	}
}


.maindiv {
    background-color: white;
    filter: drop-shadow(1px 1px 70px rgba(0,0,0,0.15));
}
.timeline-image{
    /* width: 100%; */
    max-width: 100%;
}
.timeline-date{
    font-size: 14px;
}
.year{
    font-size: 80px;
    font-family: 'Inter', sans-serif;
}
.timeline-description{
    text-wrap: balance;
    max-width: 50ch;
}
@property --marker-color {
    syntax: "<color>";
    inherits: true;
}
.timeline-title{
    text-shadow: 0px 4px 5px rgba(0,0,0,0.05);
    /* color: #333; */
    font-family: 'Nunito', sans-serif;
	display: inline-block;
	font-size: 1.5rem;
	font-weight: 800;
    /* width: min-content; */
    padding-inline: 0.2em;
    --marker-color: var(--color-main);
    color: var(--color-main, #333);
    /* background-image: linear-gradient(90deg, var(--color-main, white), var(--color-secondary, var(--color-main, #fff))); */
}
.timeline-container{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 2rem;
    margin-block: 2rem;
    margin-inline: 3rem;
}
/* i want to make the images smaller. the height should be the controlling dimension. they should never get smaller than a certain threshold  */
.timeline-entry {
    text-align: center;
    border-radius: 3rem;
    box-shadow: 0 0 10px 3px var(--color-main, #333);
    overflow: hidden;
    padding-inline: 1rem;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    min-width: 13rem;

    img {
        height: 14rem;
    }

    &:has(img){
        /* width: 100%; */
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: center;

        

        > * {
            /* grid-row: 1; */
            flex-grow: 1;
            flex-basis: 100%;
        }
    }

    &:has(iframe){
        --video-width: 20rem;
        height: var(--video-height);
        padding-inline: 0;
        .timeline-text-wrapper{
            margin-inline: 1rem;
        }
    }
}
@media screen and (max-width: 1100px) {
    .timeline-entry:has(iframe){
        --video-width: 40vw;
    }    
}
.timeline-video-wrapper{
    /* height: calc(var(--video-width) * 9 / 16); */
    
    width: var(--video-width);
    aspect-ratio: 16/9;
    height: auto;
    display: flex;
    iframe{
        margin-block: auto;
        width: var(--video-width);
        aspect-ratio: 16/9;
        height: auto;
        /* height: calc(var(--video-width) * 9 / 16); */
    }
}
/* .timeline-image-container{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    position: relative;
    max-height: 100%;
} */
.timeline-image-wrapper{
    /* position: relative; */
    z-index: 2;
    /* width: fit-content; */
    max-height: 100%;
    max-width: 100%;
    /* height: 100%; */
    display: flex;
    flex-direction: column;
    justify-content: center;
    &>img{
        position: relative;
        object-fit: contain;
        max-width: min(60vw, 100%);
        max-height: 100%;
        /* height: auto; */
        width: auto;
        margin-inline: auto;
        
    }
    
}
@media screen and (min-width: 650px) {
    .timeline-entry:has(img):nth-of-type(even) .timeline-image-wrapper {
        order: 1;
    }
}
@media screen and (max-width: 650px) {
    .timeline-entry:has(img, iframe){
        flex-wrap: wrap;
        --video-width: 60vw;
    }

    .timeline-entry {

        img{
            height: 10rem;
        }

        iframe{
            width: 100%;
        }

    }

    

    .timeline-text-wrapper{
        order: 2;
        margin-block: 1rem;
    }

    .timeline-description{
        max-width: 95%;
    }

    .timeline-image-wrapper{
        &:has(.timeline-image-polaroid-stack){
            margin-bottom: 1.5rem;
        }
        + .timeline-text-wrapper{
            margin-top: 0;
        }
    }
}
.timeline-text-wrapper{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
}
.timeline-image-sticker {
    rotate: -10deg;
    --color-border: #ccc;
    --border-width-inner: 4px;
    filter: 
        drop-shadow(var(--border-width-inner) 0 0px #fff)
        drop-shadow(0 var(--border-width-inner)  0 #fff)
        drop-shadow(calc(-1 * var(--border-width-inner)) 0 0px #fff) 
        drop-shadow(0 calc(-1 * var(--border-width-inner)) 0 #fff)
        drop-shadow(1px 0 0px var(--color-border)) 
        drop-shadow(0 1px 0 var(--color-border)) 
        drop-shadow(-1px 0 0px var(--color-border)) 
        drop-shadow(0 -1px 0 var(--color-border))
        drop-shadow(0px 2px 2px rgba(0,0,0,0.1));
}
.timeline-image-polaroid {
    box-sizing: content-box;
    border: 0.8rem solid white;
    border-bottom-width: 1.5rem;
    box-shadow: 0px 2px 2px rgba(0,0,0,0.2);
}
.timeline-image-polaroid-stack {
    box-sizing: content-box;
    border: 0.8rem solid #0000;
    border-bottom-width: 1.8rem;
    /* box-shadow: 0px 2px 4px rgba(0,0,0,0.25); */
    rotate: var(--top-rotation);
}
.timeline-image-wrapper:has(.timeline-image-polaroid-stack){
    --top-rotation: -5deg;
    &::before, &::after{
        content: "";
        display: block;
        /* background: #fafafa; */
        background-image: url("/images/bg/paperTexture.png");
        filter:brightness(1.06);
        background-size: cover;
        position: absolute;
        width: 100%;
        height: 100%;
        z-index: -1;
        box-shadow: 0px 2px 4px rgba(0,0,0,0.25);
    }
    &::before{
        rotate: 10deg;
    }
    &::after{
        rotate: var(--top-rotation);
        top: 0;
    }
}
/* tbh this one kinda isn't great */
.timeline-image-polaroid-in-album{
    box-sizing: content-box;
    border: 0.8rem solid #0000;
    border-bottom-width: 1.8rem;
    background-image: url("/images/bg/paperTexture.png");
    box-shadow: 0px 2px 4px rgba(0,0,0,0.15);
    rotate: var(--top-rotation);
}
.timeline-image-wrapper:has(.timeline-image-polaroid-in-album){
    &::after, &::before{
        content: '';
        display: block;
        position: absolute;
        --w: 2.5rem;
        width: var(--w);
        aspect-ratio: 1;
        --offset-factor: -4;

        --color-1: #777;
        --color-2: #555;
        
        mask-image: linear-gradient(var(--angle), #000 50%, #fff 50.5% 0);
        mask-mode: luminance;

        filter: blur(1.5px);
        
    }
    &::after{
        bottom: calc(var(--w) / var(--offset-factor));
        right: calc(var(--w) / var(--offset-factor));
        --angle: 135deg;
        
        background: conic-gradient(
            from var(--angle) at calc(var(--w) + (var(--w) / var(--offset-factor)) / 1.5) calc(var(--w) + (var(--w) / var(--offset-factor)) / 1.5),
            var(--color-2) 125deg,
            var(--color-1) 180deg,
            var(--color-2) 235deg
            );
        box-shadow: inset -1px -1px 0px white;
    }
    &::before{
        top: calc(var(--w) / var(--offset-factor));
        left: calc(var(--w) / var(--offset-factor));
        --angle: 315deg;

        background: conic-gradient(
            from var(--angle) at calc(-1 * (var(--w) / var(--offset-factor)) / 1.5) calc(-1 * (var(--w) / var(--offset-factor)) / 1.5),
            var(--color-2) 125deg,
            var(--color-1) 180deg,
            var(--color-2) 235deg
            );
        box-shadow: inset 1px 1px 0px white;
    }
}
.timeline-image-caption-handwritten{
    font-family: "Waiting for the Sunrise", serif;
    font-weight: 400;
    font-style: normal;
    font-size: 22px;
    letter-spacing: 1px;
    line-height: 1.2em;
    position: absolute;
    top: calc(100% + 1em);
}.music-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin-inline: auto;
    --circle-size: 150px;
    --display-size: 48;
    width: 100%;
    gap: 1rem;

    .social-media-icon{
        height: inherit;
    }
}

.song-container {
    background-color: var(--clr-soft);
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    align-items: center;
    padding-bottom: 0.5rem;
    gap:0.8rem;
    --border: 1px solid var(--clr-strong);
    border: var(--border);
    border-radius: 1.5rem;
    overflow: hidden;
    > img {
        box-sizing: content-box;
        aspect-ratio: 1;
        border-bottom: var(--border);
    }
    >.socials-container{
        max-width: 250px;
        flex-wrap: wrap;
    }
}

.song-artwork{ /* song artwork does not have to be larger than about 300x300 */
    border-radius: 25px;
    width:100%;
}

.song-title{
    font-size: 18px;
}
.flags-container{
	min-height: 100vh;
	background-color: white;
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2rem;
	padding-block: 2rem;
	--sweden-yellow: #ffcd00;
	--sweden-blue: #005293;
}

.flag-marshall-islands{
	--dark-blue: rgb(0 56 147);
	--fulvous: rgb(221 117 0);
	background-color: var(--dark-blue);

	--height: 400;
	aspect-ratio: 19/10;
	height: calc(1px * var(--height));
	--gap: calc(0.016 * var(--height));
	--lines-right-height: calc(0.392 * var(--height));
	position: relative;

	--angle-start: atan(19 / (10 * (1 - 4 * 0.016)));
	--angle-middle: atan(19 / (10 * (1 - 3 * 0.016 - 0.392 / 2)));
	--angle-end: atan(19 / (10 * (1 - 2 * 0.016 - 0.392)));

	--angle-start-to-middle: calc(var(--angle-middle) - var(--angle-start));
	--angle-middle-to-end: calc(var(--angle-end) - var(--angle-middle));

	--start-position-x: calc(-380 * var(--height) * 1px / (9 * 250));
	--start-position-y: calc(88 * var(--height) * 1px / (10 * 250) + 100%);
	background-image: conic-gradient(
		from var(--angle-start) 
		at 
			calc(-380 * var(--height) * 1px / (9 * 250))
			calc(88 * var(--height) * 1px / (10 * 250) + 100%),
		var(--fulvous) var(--angle-start-to-middle),
		#fff var(--angle-start-to-middle) calc(var(--angle-start-to-middle) + var(--angle-middle-to-end)),
		#0000 0);
	
	&::after, &::before{
		content: '';
		display: block;
		position: absolute;
		aspect-ratio: 1;
		
		--radius-outer: calc(0.620 * var(--height) / 2);
		--radius-middle: calc(0.444 * var(--height) / 2);
		--radius-inner: calc(0.196 * var(--height) / 2);
		--radius-longest: calc(((84371 - 119 * sqrt(280381)) / (234 * 250)) * var(--height));
		height: calc(1px * var(--radius-longest) * 2);
	}

	&::after{
		clip-path: polygon(
			50% calc(50% + var(--radius-outer) * 1px),
			calc(50% + var(--radius-inner) * 1px * sin(pi / 24)) calc(50% + var(--radius-inner) * 1px * cos(pi / 24)),
			calc(50% + var(--radius-middle) * 1px * sin(2 * pi / 24)) calc(50% + var(--radius-middle) * 1px * cos(2 * pi / 24)),
			calc(50% + var(--radius-inner) * 1px * sin(3 * pi / 24)) calc(50% + var(--radius-inner) * 1px * cos(3 * pi / 24)),
			calc(50% + var(--radius-middle) * 1px * sin(4 * pi / 24)) calc(50% + var(--radius-middle) * 1px * cos(4 * pi / 24)),
			calc(50% + var(--radius-inner) * 1px * sin(5 * pi / 24)) calc(50% + var(--radius-inner) * 1px * cos(5 * pi / 24)),
			calc(50% + var(--radius-middle) * 1px * sin(6 * pi / 24)) calc(50% + var(--radius-middle) * 1px * cos(6 * pi / 24)),
			calc(50% + var(--radius-inner) * 1px * sin(7 * pi / 24)) calc(50% + var(--radius-inner) * 1px * cos(7 * pi / 24)),
			calc(50% + var(--radius-middle) * 1px * sin(8 * pi / 24)) calc(50% + var(--radius-middle) * 1px * cos(8 * pi / 24)),
			calc(50% + var(--radius-inner) * 1px * sin(9 * pi / 24)) calc(50% + var(--radius-inner) * 1px * cos(9 * pi / 24)),
			calc(50% + var(--radius-middle) * 1px * sin(10 * pi / 24)) calc(50% + var(--radius-middle) * 1px * cos(10 * pi / 24)),
			calc(50% + var(--radius-inner) * 1px * sin(11 * pi / 24)) calc(50% + var(--radius-inner) * 1px * cos(11 * pi / 24)),

			calc(50% + var(--radius-outer) * 1px) 50%,
			calc(50% + var(--radius-inner) * 1px * cos(pi / 24)) calc(50% - var(--radius-inner) * 1px * sin(pi / 24)),
			calc(50% + var(--radius-middle) * 1px * cos(2 * pi / 24)) calc(50% - var(--radius-middle) * 1px * sin(2 * pi / 24)),
			calc(50% + var(--radius-inner) * 1px * cos(3 * pi / 24)) calc(50% - var(--radius-inner) * 1px * sin(3 * pi / 24)),
			calc(50% + var(--radius-middle) * 1px * cos(4 * pi / 24)) calc(50% - var(--radius-middle) * 1px * sin(4 * pi / 24)),
			calc(50% + var(--radius-inner) * 1px * cos(5 * pi / 24)) calc(50% - var(--radius-inner) * 1px * sin(5 * pi / 24)),
			calc(50% + var(--radius-middle) * 1px * cos(6 * pi / 24)) calc(50% - var(--radius-middle) * 1px * sin(6 * pi / 24)),
			calc(50% + var(--radius-inner) * 1px * cos(7 * pi / 24)) calc(50% - var(--radius-inner) * 1px * sin(7 * pi / 24)),
			calc(50% + var(--radius-middle) * 1px * cos(8 * pi / 24)) calc(50% - var(--radius-middle) * 1px * sin(8 * pi / 24)),
			calc(50% + var(--radius-inner) * 1px * cos(9 * pi / 24)) calc(50% - var(--radius-inner) * 1px * sin(9 * pi / 24)),
			calc(50% + var(--radius-middle) * 1px * cos(10 * pi / 24)) calc(50% - var(--radius-middle) * 1px * sin(10 * pi / 24)),
			calc(50% + var(--radius-inner) * 1px * cos(11 * pi / 24)) calc(50% - var(--radius-inner) * 1px * sin(11 * pi / 24)),

			50% calc(50% - var(--radius-outer) * 1px),
			calc(50% - var(--radius-inner) * 1px * sin(pi / 24)) calc(50% - var(--radius-inner) * 1px * cos(pi / 24)),
			calc(50% - var(--radius-middle) * 1px * sin(2 * pi / 24)) calc(50% - var(--radius-middle) * 1px * cos(2 * pi / 24)),
			calc(50% - var(--radius-inner) * 1px * sin(3 * pi / 24)) calc(50% - var(--radius-inner) * 1px * cos(3 * pi / 24)),
			calc(50% - var(--radius-middle) * 1px * sin(4 * pi / 24)) calc(50% - var(--radius-middle) * 1px * cos(4 * pi / 24)),
			calc(50% - var(--radius-inner) * 1px * sin(5 * pi / 24)) calc(50% - var(--radius-inner) * 1px * cos(5 * pi / 24)),
			calc(50% - var(--radius-middle) * 1px * sin(6 * pi / 24)) calc(50% - var(--radius-middle) * 1px * cos(6 * pi / 24)),
			calc(50% - var(--radius-inner) * 1px * sin(7 * pi / 24)) calc(50% - var(--radius-inner) * 1px * cos(7 * pi / 24)),
			calc(50% - var(--radius-middle) * 1px * sin(8 * pi / 24)) calc(50% - var(--radius-middle) * 1px * cos(8 * pi / 24)),
			calc(50% - var(--radius-inner) * 1px * sin(9 * pi / 24)) calc(50% - var(--radius-inner) * 1px * cos(9 * pi / 24)),
			calc(50% - var(--radius-middle) * 1px * sin(10 * pi / 24)) calc(50% - var(--radius-middle) * 1px * cos(10 * pi / 24)),
			calc(50% - var(--radius-inner) * 1px * sin(11 * pi / 24)) calc(50% - var(--radius-inner) * 1px * cos(11 * pi / 24)),

			calc(50% - var(--radius-outer) * 1px) 50%,
			calc(50% - var(--radius-inner) * 1px * cos(pi / 24)) calc(50% + var(--radius-inner) * 1px * sin(pi / 24)),
			calc(50% - var(--radius-middle) * 1px * cos(2 * pi / 24)) calc(50% + var(--radius-middle) * 1px * sin(2 * pi / 24)),
			calc(50% - var(--radius-inner) * 1px * cos(3 * pi / 24)) calc(50% + var(--radius-inner) * 1px * sin(3 * pi / 24)),
			calc(50% - var(--radius-middle) * 1px * cos(4 * pi / 24)) calc(50% + var(--radius-middle) * 1px * sin(4 * pi / 24)),
			calc(50% - var(--radius-inner) * 1px * cos(5 * pi / 24)) calc(50% + var(--radius-inner) * 1px * sin(5 * pi / 24)),
			calc(50% - var(--radius-middle) * 1px * cos(6 * pi / 24)) calc(50% + var(--radius-middle) * 1px * sin(6 * pi / 24)),
			calc(50% - var(--radius-inner) * 1px * cos(7 * pi / 24)) calc(50% + var(--radius-inner) * 1px * sin(7 * pi / 24)),
			calc(50% - var(--radius-middle) * 1px * cos(8 * pi / 24)) calc(50% + var(--radius-middle) * 1px * sin(8 * pi / 24)),
			calc(50% - var(--radius-inner) * 1px * cos(9 * pi / 24)) calc(50% + var(--radius-inner) * 1px * sin(9 * pi / 24)),
			calc(50% - var(--radius-middle) * 1px * cos(10 * pi / 24)) calc(50% + var(--radius-middle) * 1px * sin(10 * pi / 24)),
			calc(50% - var(--radius-inner) * 1px * cos(11 * pi / 24)) calc(50% + var(--radius-inner) * 1px * sin(11 * pi / 24))
		);
		background-color: #fff;
	}

	&::before{
		display: none;
		background-image: radial-gradient(
			circle at center, 
			#0000 calc(1px * var(--radius-inner) - 1px),
			red calc(1px * var(--radius-inner) - 1px) calc(1px * var(--radius-inner)),
			#0000 calc(1px * var(--radius-inner)) calc(1px * var(--radius-middle) - 1px),
			red calc(1px * var(--radius-middle) - 1px) calc(1px * var(--radius-middle)),
			#0000 calc(1px * var(--radius-middle)) calc(1px * var(--radius-outer) - 1px),
			red calc(1px * var(--radius-outer) - 1px) calc(1px * var(--radius-outer)),
			#0000 calc(1px * var(--radius-outer)) calc(1px * var(--radius-longest) - 1px),
			red calc(1px * var(--radius-longest) - 1px) calc(1px * var(--radius-longest)),
			#0000 calc(1px * var(--radius-longest)) 0
		);
	}
}

.flag-iceland{
	--blue: rgb(2 82 156);
	--red: rgb(220 30 53);
	background:
		linear-gradient(
			#0000 calc(8 * 100% / 18), 
			var(--red) calc(8 * 100% / 18) calc(10 * 100% / 18), 
			#0000 0
		),
		linear-gradient(
			90deg,
			#0000 calc(7 * 100% / 25), 
			#fff calc(7 * 100% / 25) calc(8 * 100% / 25),
			var(--red) calc(8 * 100% / 25) calc(10 * 100% / 25),
			#fff calc(10 * 100% / 25) calc(11 * 100% / 25),
			#0000 0
		),
		linear-gradient(
			var(--blue) calc(7 * 100% / 18), 
			#fff calc(7 * 100% / 18) calc(8 * 100% / 18),
			var(--red) calc(8 * 100% / 18) calc(10 * 100% / 18),
			#fff calc(10 * 100% / 18) calc(11 * 100% / 18),
			var(--blue) 0
		);

	--height: 500;
	aspect-ratio: 25/18;
	height: calc(1px * var(--height));
}

.flag-czech-republic{
	--color-red: rgb(215 20 26);
	--color-blue: rgb(17 69 126);
	--height: 500;
	aspect-ratio: 3/2;
	height: calc(1px * var(--height));
	background: conic-gradient(
		from 90deg at center, 
		var(--color-red) calc(atan(1.5) + 90deg), 
		var(--color-blue) calc(atan(1.5) + 90deg) calc(270deg - atan(1.5)), 
		#fff 0);
}

.flag-greenland{
	--height: 500;
	aspect-ratio: 3/2;
	height: calc(1px * var(--height));
	background-color: #c9082a;
	mask: exclude
		radial-gradient(
			circle at calc(7 / 18 * var(--height) * 1px * 3 / 2) 50%, 
			#fff calc(1 / 3 * 1px * var(--height)), 
			#0000 0
		), 
		linear-gradient(#0000 50%, #fff 50% 0);
}

.flag-panama-old{
	--color-red: #db0a13;
	--color-blue: #011e56;
	--height: 500;
	aspect-ratio: 3/2;
	height: calc(1px * var(--height));
	position: relative;

	&::after, &::before{
		content: '';
		display: block;
		position:absolute;
		height: calc(1px * var(--height));
		width: calc(1px * var(--height) * 3 / 2);
		--radius: calc((20 - 4 * sqrt(5)) / 10);
		--a: calc(var(--radius) - 1);
		--angle-theta: calc(asin(var(--radius) * (sin(2 * 2 * pi / 5 + pi / 10) - sin(3 * 2 * pi / 5 + pi / 10)) / (2 * var(--radius) - var(--a))) / 2);
		--angle-alpha: calc(var(--angle-theta) + 1rad * pi / 2);
		--i: calc((var(--angel) * (var(--radius) + 1)) / (2 * (1 + var(--angel))));
		--inner-radius: calc(var(--i) / sin(2 * pi / 10));
		--angel: cos(pi * 1rad - var(--angle-alpha));
		mask-mode:alpha;
		--mask-color-1: #0000;
		--mask-color-2: black;
		mask-composite: intersect, add, intersect, intersect, intersect, intersect;
	}

	&::before{
		mask-image:
		linear-gradient(90deg, #fff 50%, #0000 50% 0),
		linear-gradient(#0000 50%, #fff 50% 0),
		conic-gradient(
			from calc(90deg - var(--angle-alpha))
			at 
			calc(25% + var(--inner-radius) * cos(2 * pi / 5 - pi / 10) * var(--height) / 8 * 1px) 
			calc(25% + var(--a) * var(--height) / 8 * 1px - var(--inner-radius) * sin(2 * pi / 5 - pi / 10) * var(--height) / 8 * 1px),
			#0000 var(--angle-alpha), #000 var(--angle-alpha) 0
		),
		conic-gradient(
			from calc(90deg - 7 * var(--angle-alpha))
			at 
			calc(25% - var(--inner-radius) * cos(2 * 3 * pi / 5 - pi / 10) * var(--height) / 8 * 1px) 
			calc(25% + var(--a) * var(--height) / 8 * 1px - var(--inner-radius) * sin(2 * 3 * pi / 5 - pi / 10) * var(--height) / 8 * 1px),
			#0000 var(--angle-alpha), #000 var(--angle-alpha) 0
		),
		conic-gradient(
			from calc(90deg - 9 * var(--angle-alpha))
			at 
			calc(25% + var(--inner-radius) * cos(2 * 3 * pi / 5 - pi / 10) * var(--height) / 8 * 1px) 
			calc(25% + var(--a) * var(--height) / 8 * 1px - var(--inner-radius) * sin(2 * 3 * pi / 5 - pi / 10) * var(--height) / 8 * 1px),
			#0000 var(--angle-alpha), #000 var(--angle-alpha) 0
		),
		conic-gradient(
			from calc(90deg - 3 * var(--angle-alpha))
			at 
			25% 
			calc(25% + var(--a) * var(--height) / 8 * 1px - var(--inner-radius) * sin(2 * 4 * pi / 5 - pi / 10) * var(--height) / 8 * 1px),
			#0000 var(--angle-alpha), #000 var(--angle-alpha) 0
		),
		conic-gradient(
			from calc(90deg - 5 * var(--angle-alpha))
			at 
			calc(25% - var(--inner-radius) * cos(2 * pi / 5 - pi / 10) * var(--height) / 8 * 1px) 
			calc(25% + var(--a) * var(--height) / 8 * 1px - var(--inner-radius) * sin(2 * pi / 5 - pi / 10) * var(--height) / 8 * 1px),
			#0000 var(--angle-alpha), #000 var(--angle-alpha) 0
		);
		background-color: var(--color-blue);
	}

	&::after{
		top: 0;
		mask-image:
		linear-gradient(90deg, #0000 50%, #fff 50% 0),
		linear-gradient(#fff 50%, #0000 50% 0),
		conic-gradient(
			from calc(90deg - var(--angle-alpha))
			at 
			calc(75% + var(--inner-radius) * cos(2 * pi / 5 - pi / 10) * var(--height) / 8 * 1px) 
			calc(75% + var(--a) * var(--height) / 8 * 1px - var(--inner-radius) * sin(2 * pi / 5 - pi / 10) * var(--height) / 8 * 1px),
			#0000 var(--angle-alpha), #000 var(--angle-alpha) 0
		),
		conic-gradient(
			from calc(90deg - 7 * var(--angle-alpha))
			at 
			calc(75% - var(--inner-radius) * cos(2 * 3 * pi / 5 - pi / 10) * var(--height) / 8 * 1px) 
			calc(75% + var(--a) * var(--height) / 8 * 1px - var(--inner-radius) * sin(2 * 3 * pi / 5 - pi / 10) * var(--height) / 8 * 1px),
			#0000 var(--angle-alpha), #000 var(--angle-alpha) 0
		),
		conic-gradient(
			from calc(90deg - 9 * var(--angle-alpha))
			at 
			calc(75% + var(--inner-radius) * cos(2 * 3 * pi / 5 - pi / 10) * var(--height) / 8 * 1px) 
			calc(75% + var(--a) * var(--height) / 8 * 1px - var(--inner-radius) * sin(2 * 3 * pi / 5 - pi / 10) * var(--height) / 8 * 1px),
			#0000 var(--angle-alpha), #000 var(--angle-alpha) 0
		),
		conic-gradient(
			from calc(90deg - 3 * var(--angle-alpha))
			at 
			75% 
			calc(75% + var(--a) * var(--height) / 8 * 1px - var(--inner-radius) * sin(2 * 4 * pi / 5 - pi / 10) * var(--height) / 8 * 1px),
			#0000 var(--angle-alpha), #000 var(--angle-alpha) 0
		),
		conic-gradient(
			from calc(90deg - 5 * var(--angle-alpha))
			at 
			calc(75% - var(--inner-radius) * cos(2 * pi / 5 - pi / 10) * var(--height) / 8 * 1px) 
			calc(75% + var(--a) * var(--height) / 8 * 1px - var(--inner-radius) * sin(2 * pi / 5 - pi / 10) * var(--height) / 8 * 1px),
			#0000 var(--angle-alpha), #000 var(--angle-alpha) 0
		);
		background-color: var(--color-red);
	}		
}

.flag-panama{
	--red: #db0a13;
	--blue: #011e56;
	
	--height: 500;
	aspect-ratio: 3/2;
	height: calc(1px * var(--height));
	position: relative;
	--radius: calc((20 - 4 * sqrt(5)) / 10);
	--a: calc(var(--radius) - 1);
	--angle-theta: calc(asin(var(--radius) * (sin(2 * 2 * pi / 5 + pi / 10) - sin(3 * 2 * pi / 5 + pi / 10)) / (2 * var(--radius) - var(--a))) / 2);
	--angle-alpha: calc(var(--angle-theta) + 1rad * pi / 2);
	--inner-radius: calc((cos(pi * 1rad - var(--angle-alpha)) * (var(--radius) + 1)) / (2 * (1 + cos(pi * 1rad - var(--angle-alpha)))) / sin(2 * pi / 10));
	--rel-unit: calc(1px * var(--height) / 8);
	--star-point: #0000 var(--angle-alpha), #000 0;
	mask:
		exclude bottom right radial-gradient(
			circle at
			center calc(50% + var(--a) * var(--rel-unit)),
			#0000 calc(var(--radius) * var(--rel-unit)), 
			#000 0
		),
		add bottom right radial-gradient(
			circle at
			center calc(50% + var(--a) * var(--rel-unit)),
			#0000 calc(var(--radius) * var(--rel-unit)), 
			#000 0
		),
		exclude bottom right conic-gradient(
			from calc(90deg - var(--angle-alpha))
			at 
			calc(50% + var(--inner-radius) * cos(2 * pi / 5 - pi / 10) * var(--rel-unit)) 
			calc(50% + (var(--a) - var(--inner-radius) * sin(2 * pi / 5 - pi / 10)) * var(--rel-unit)),
			#0000 var(--angle-alpha), 
			#000 0
		),
		exclude bottom right conic-gradient(
			from calc(90deg - 7 * var(--angle-alpha))
			at 
			calc(50% - var(--inner-radius) * cos(2 * 3 * pi / 5 - pi / 10) * var(--rel-unit)) 
			calc(50% + (var(--a) - var(--inner-radius) * sin(2 * 3 * pi / 5 - pi / 10)) * var(--rel-unit)),
			var(--star-point)
		),
		exclude bottom right conic-gradient(
			from calc(90deg - 9 * var(--angle-alpha))
			at 
			calc(50% + var(--inner-radius) * cos(2 * 3 * pi / 5 - pi / 10) * var(--rel-unit)) 
			calc(50% + (var(--a) - var(--inner-radius) * sin(2 * 3 * pi / 5 - pi / 10)) * var(--rel-unit)),
			var(--star-point)
		),
		exclude bottom right conic-gradient(
			from calc(90deg - 3 * var(--angle-alpha))
			at 
			50% 
			calc(50% + (var(--a) - var(--inner-radius) * sin(2 * 4 * pi / 5 - pi / 10)) * var(--rel-unit)),
			var(--star-point)
		),
		exclude bottom right conic-gradient(
			from calc(90deg - 5 * var(--angle-alpha))
			at 
			calc(50% - var(--inner-radius) * cos(2 * pi / 5 - pi / 10) * var(--rel-unit)) 
			calc(50% + (var(--a) - var(--inner-radius) * sin(2 * pi / 5 - pi / 10)) * var(--rel-unit)),
			var(--star-point)
		),
		add top right linear-gradient(
			#fff calc(4 * var(--rel-unit)),
			#0000 0
		),
		add bottom left linear-gradient(
			#fff calc(4 * var(--rel-unit)),
			#0000 0
		),
		intersect top left conic-gradient(
			from calc(90deg - var(--angle-alpha))
			at 
			calc(50% + var(--inner-radius) * cos(2 * pi / 5 - pi / 10) * var(--rel-unit)) 
			calc(50% + (var(--a) - var(--inner-radius) * sin(2 * pi / 5 - pi / 10)) * var(--rel-unit)),
			var(--star-point)
		),
		intersect top left conic-gradient(
			from calc(90deg - 7 * var(--angle-alpha))
			at 
			calc(50% - var(--inner-radius) * cos(2 * 3 * pi / 5 - pi / 10) * var(--rel-unit)) 
			calc(50% + (var(--a) - var(--inner-radius) * sin(2 * 3 * pi / 5 - pi / 10)) * var(--rel-unit)),
			var(--star-point)
		),
		intersect top left conic-gradient(
			from calc(90deg - 9 * var(--angle-alpha))
			at 
			calc(50% + var(--inner-radius) * cos(2 * 3 * pi / 5 - pi / 10) * var(--rel-unit)) 
			calc(50% + (var(--a) - var(--inner-radius) * sin(2 * 3 * pi / 5 - pi / 10)) * var(--rel-unit)),
			var(--star-point)
		),
		intersect top left conic-gradient(
			from calc(90deg - 3 * var(--angle-alpha))
			at 
			50% 
			calc(50% + (var(--a) - var(--inner-radius) * sin(2 * 4 * pi / 5 - pi / 10)) * var(--rel-unit)),
			var(--star-point)
		),
		top left conic-gradient(
			from calc(90deg - 5 * var(--angle-alpha))
			at 
			calc(50% - var(--inner-radius) * cos(2 * pi / 5 - pi / 10) * var(--rel-unit)) 
			calc(50% + (var(--a) - var(--inner-radius) * sin(2 * pi / 5 - pi / 10)) * var(--rel-unit)),
			var(--star-point)
		);
	background: linear-gradient(90deg, var(--blue) 50%, var(--red) 0);
	mask-size: 
		calc(4 * var(--rel-unit) * 3 / 2) 
		calc(4 * var(--rel-unit));
	mask-repeat: no-repeat;
}

.flag-comoros{
	--green: #009639;
	--flag-height: 500;
	--height: 500;
	aspect-ratio: 5/3;
	height: calc(1px * var(--height));
	position: relative;
	background:
		radial-gradient(
			circle at calc((41 + 13) / 240 * 100%) 50%,
			var(--green) calc(66 / 2 / 144 * var(--height) * 1px),
			#0000 calc(66 / 2 / 144 * var(--height) * 1px) 0
		),
		radial-gradient(
			circle at calc(41 / 240 * 100%) 50%,
			#fff calc(68 / 2 / 144 * var(--height) * 1px),
			#0000 calc(68 / 2 / 144 * var(--height) * 1px) 0
		),
		conic-gradient(
			from 90deg at center, 
			#0000 calc(atan(120 / 72) + 90deg), 
			var(--green) calc(atan(120 / 72) + 90deg) calc(270deg - atan(120 / 72)), 
			#0000 calc(270deg - atan(120 / 72)) 0),
		linear-gradient(
			#ffd100 25%,
			#fff 25% 50%,
			#ef3340 50% 75%,
			#003da5 75% 0
		);
	
		&::after{
		content: '';
		display: block;
		position: relative;
		--star-height: 50;
		--height: calc(var(--star-height) / var(--star-part-of-height));
		height: calc(1px * 6 * var(--radius) * var(--height) / 8);
		--star-part-of-height: calc(var(--radius) * 2 / 8);
		aspect-ratio: 1/3;
		--radius: calc((20 - 4 * sqrt(5)) / 10);
		--radius-size: calc(7 / 144);
		--a: calc(var(--radius) - 1);
		--angle-theta: calc(asin(var(--radius) * (sin(2 * 2 * pi / 5 + pi / 10) - sin(3 * 2 * pi / 5 + pi / 10)) / (2 * var(--radius) - var(--a))) / 2);
		--angle-alpha: calc(var(--angle-theta) + 1rad * pi / 2);
		--i: calc((var(--angel) * (var(--radius) + 1)) / (2 * (1 + var(--angel))));
		--inner-radius: calc(var(--i) / sin(2 * pi / 10));
		--angel: cos(pi * 1rad - var(--angle-alpha));
		--mask-color-1: #0000;
		--mask-color-2: black;

		left: calc(1px * (41 + 118 / 13 - var(--radius)) * var(--flag-height) / 8);
		top: calc(1px * ((144 - 68) / 2 + (68 - (23 + 22)) / 2 - var(--radius)) * var(--flag-height) / 8);

		mask-composite: intersect, intersect, intersect, intersect;
		mask-size: calc(1px * 2 * var(--radius) * var(--height) / 8) calc(1px * 2 * var(--radius) * var(--height) / 8);
		mask-repeat: repeat-y;
		mask-image:
			conic-gradient(
				from calc(90deg - var(--angle-alpha))
				at 
				calc(1px * var(--radius) * var(--height) / 8 + var(--inner-radius) * cos(2 * pi / 5 - pi / 10) * var(--height) / 8 * 1px) 
				calc(1px * var(--radius) * var(--height) / 8 + var(--a) * var(--height) / 8 * 1px - var(--inner-radius) * sin(2 * pi / 5 - pi / 10) * var(--height) / 8 * 1px),
				#0000 var(--angle-alpha), #000 var(--angle-alpha) 0
			),
			conic-gradient(
				from calc(90deg - 7 * var(--angle-alpha))
				at 
				calc(1px * var(--radius) * var(--height) / 8 - var(--inner-radius) * cos(2 * 3 * pi / 5 - pi / 10) * var(--height) / 8 * 1px) 
				calc(1px * var(--radius) * var(--height) / 8 + var(--a) * var(--height) / 8 * 1px - var(--inner-radius) * sin(2 * 3 * pi / 5 - pi / 10) * var(--height) / 8 * 1px),
				#0000 var(--angle-alpha), #000 var(--angle-alpha) 0
			),
			conic-gradient(
				from calc(90deg - 9 * var(--angle-alpha))
				at 
				calc(1px * var(--radius) * var(--height) / 8 + var(--inner-radius) * cos(2 * 3 * pi / 5 - pi / 10) * var(--height) / 8 * 1px) 
				calc(1px * var(--radius) * var(--height) / 8 + var(--a) * var(--height) / 8 * 1px - var(--inner-radius) * sin(2 * 3 * pi / 5 - pi / 10) * var(--height) / 8 * 1px),
				#0000 var(--angle-alpha), #000 var(--angle-alpha) 0
			),
			conic-gradient(
				from calc(90deg - 3 * var(--angle-alpha))
				at 
				calc(1px * var(--radius) * var(--height) / 8)
				calc(1px * var(--radius) * var(--height) / 8 + var(--a) * var(--height) / 8 * 1px - var(--inner-radius) * sin(2 * 4 * pi / 5 - pi / 10) * var(--height) / 8 * 1px),
				#0000 var(--angle-alpha), #000 var(--angle-alpha) 0
			),
			conic-gradient(
				from calc(90deg - 5 * var(--angle-alpha))
				at 
				calc(1px * var(--radius) * var(--height) / 8 - var(--inner-radius) * cos(2 * pi / 5 - pi / 10) * var(--height) / 8 * 1px) 
				calc(1px * var(--radius) * var(--height) / 8 + var(--a) * var(--height) / 8 * 1px - var(--inner-radius) * sin(2 * pi / 5 - pi / 10) * var(--height) / 8 * 1px),
				#0000 var(--angle-alpha), #000 var(--angle-alpha) 0
			);
			mask-position: 
				calc((41 + 118 / 13 - var(--radius)) * var(--height) / 8)
				calc(((144 - 68) / 2 + (68 - (23 + 22)) / 2 - var(--radius)) * var(--height) / 8);
			background-color: #fff;
		}
}

.flag-grenada{
	--yellow:#fcd20e;
	--red:#cf0821;
	--green:#007b5e;

	--height: 500;
	aspect-ratio: 5/3;
	height: calc(1px * var(--height));
	position: relative;
	background-image:
		radial-gradient(
			circle at center,
			var(--red) calc(72 / 600 * var(--height) * 1px),
			#0000 calc(72 / 600 * var(--height) * 1px) 0
		),
		linear-gradient(
			var(--red) calc(84 / 600 * var(--height) * 1px),
			#0000 calc(84 / 600 * var(--height) * 1px) calc(100% - 84 / 600 * var(--height) * 1px),
			var(--red) calc(100% - 84 / 600 * var(--height) * 1px) 0
		),
		linear-gradient(
			90deg,
			var(--red) calc(84 / 600 * var(--height) * 1px),
			#0000 calc(84 / 600 * var(--height) * 1px) calc(100% - 84 / 600 * var(--height) * 1px),
			var(--red) calc(100% - 84 / 600 * var(--height) * 1px) 0
		),
		conic-gradient(
			from atan(-1 * (1000 - 84 * 2) / (600 - 84 * 2)) at center,
			var(--yellow) calc(2 * atan((1000 - 84 * 2) / (600 - 84 * 2))), 
			var(--green) calc(2 * atan((1000 - 84 * 2) / (600 - 84 * 2))) calc(2 * atan((1000 - 84 * 2) / (600 - 84 * 2)) + 2 * atan((600 - 84 * 2) / (1000 - 84 * 2))),
			var(--yellow) calc(2 * atan((1000 - 84 * 2) / (600 - 84 * 2)) + 2 * atan((600 - 84 * 2) / (1000 - 84 * 2))) calc(4 * atan((1000 - 84 * 2) / (600 - 84 * 2)) + 2 * atan((600 - 84 * 2) / (1000 - 84 * 2))),
			var(--green) calc(4 * atan((1000 - 84 * 2) / (600 - 84 * 2)) + 2 * atan((600 - 84 * 2) / (1000 - 84 * 2))) 0
		)
}

.flag-nepal{
	--d_ab: 1; /* value is arbitrary */
	--d_ac: calc(var(--d_ab) * (1 + 1 / 3));
	--y_e: calc(var(--d_ab) / sqrt(2));
	--d_cf: calc(var(--d_ac) - var(--y_e));
	--y_m-d_ab_4: calc((var(--d_ac) - var(--d_cf) / 2 - var(--y_e)) / (0 - var(--d_ab)) * var(--d_ab) / 4 + var(--d_ac) - var(--d_cf) / 2);
	--r_m: calc(sqrt(2) * (var(--d_ab) / 4 - (var(--y_m-d_ab_4) - 5 * var(--d_ab) / 4) / -2));
	--r_l: calc(var(--d_ac) - var(--d_cf) / 2 - (var(--y_m-d_ab_4) - var(--r_m)));
	--r_mq: calc(sqrt(pow(var(--r_l), 2) - pow(var(--d_ac) - var(--d_cf) / 2 - var(--y_m-d_ab_4), 2)));
	--theta_mnr: calc(2 * asin(var(--r_m) / (2 * var(--r_l))));
	--d_tn: calc(var(--d_ac) - var(--d_cf) / 2 + var(--r_l) * sin(3 / 2 * pi * 1rad + var(--theta_mnr)) - (var(--y_m-d_ab_4) - var(--r_m)));
	--theta_z: calc(atan((var(--d_ac) - var(--y_e)) / var(--d_ab)) + 1rad * pi / 2);
	--d_gbor: calc((var(--y_e) - var(--d_tn) - var(--d_ac) - var(--d_tn) / sin(var(--theta_z))) / ((var(--d_ac) - var(--y_e)) / (0 - var(--d_ab))));
	--d_bbor: calc(var(--d_ab) + (sqrt(2) + 1) * var(--d_tn));
	--rel-height: calc(((var(--d_ac) - var(--y_e)) / (0 - var(--d_ab))) * -1 * var(--d_tn) + var(--d_ac) + var(--d_tn) / sin(var(--theta_z)) + var(--d_tn));
	--rel-width: calc(var(--d_gbor) + var(--d_tn));
	--rel-unit: calc(var(--height) / var(--rel-height) * 1px);
	--d_tm: calc(var(--r_m) - var(--d_tn));
	--d_ts: calc(var(--r_l) * cos(3 / 2 * pi * 1rad + var(--theta_mnr)));
	--d_gby: calc(var(--d_ts) - var(--d_tm) * cos(pi / 16));
	--d_gbx: calc(var(--d_tm) * sin(pi / 16));
	--theta_gb: atan(var(--d_gbx) / var(--d_gby));
	--r_o: calc(var(--d_ts) - var(--d_tm));
	--d_au: calc(var(--y_e) / 2);
	--d_ly: calc(var(--r_l) - var(--r_m) * cos(pi / 12));
	--d_lx: calc(var(--r_m) * sin(pi / 12));
	--theta_l: atan(var(--d_lx) / var(--d_ly));
	--moon-ray: #fff calc(var(--theta_gb) * 2), #0000 0;
	--sun-ray: #fff calc(var(--theta_l) * 2), #0000 0;
	--moon-y: calc(var(--rel-height) - var(--y_m-d_ab_4) - var(--d_tn) + var(--d_tm));
	--sun-y: calc(var(--rel-height) - var(--d_tn) - var(--d_au));
	
	aspect-ratio: var(--rel-width) / var(--rel-height);

	--blue: #003594;
	--red: #dd0c39;
	
	--height: 501;
	height: calc(var(--height) * 1px);

	background:
	/* blue band on the hoist side */
	left/calc(var(--d_tn) * var(--rel-unit)) no-repeat
	linear-gradient(
		0deg,
		var(--blue) calc((var(--d_tn) + var(--d_ac) + 0.027) * var(--rel-unit)), /* 0.024 is a magic number that extends it just long enough to cover the whole red area */
		#0000 calc((var(--d_tn) + var(--d_ac) + 0.027) * var(--rel-unit))
	),
	/* lower red */
	conic-gradient(
		from 270deg
		at 
			calc(var(--rel-unit) * (var(--d_tn) + var(--d_ab)))
			calc(100% - var(--rel-unit) * var(--d_tn)),
		var(--red) 45deg,
		#0000 0
	),
	/* upper red */
	conic-gradient(
		from 270deg
		at 
			calc(var(--rel-unit) * (var(--d_tn) + var(--d_ab)))
			calc(var(--rel-unit) * (var(--rel-height) - var(--y_e) - var(--d_tn))),
		var(--red) atan((var(--d_ac) - var(--y_e)) / var(--d_ab)),
		#0000 0
	),
	/* upper blue */
	conic-gradient(
		from 270deg
		at 
			100% 
			calc(var(--rel-unit) * (var(--rel-height) - var(--y_e))),
		var(--blue) atan((var(--d_ac) - var(--y_e)) / var(--d_ab)),
		#0000 0
	),
	/* lower blue */
	conic-gradient(
		from 270deg
		at 
			calc((var(--d_bbor) + var(--d_tn)) * var(--rel-unit))
			100%,
		var(--blue) 45deg,
		#0000 0
	);
	mask:
	/* first four radial gradients fix some holes in the sun */
	exclude radial-gradient(
		circle at 
		calc((var(--d_tn) + var(--d_ab) / 4) * var(--rel-unit))
		calc((var(--rel-height) - var(--d_au) - var(--d_tn) - var(--r_l) * 0.65) * var(--rel-unit)),
		#fff calc(0.01 * var(--rel-unit)),
		#0000 0
	),
	add radial-gradient(
		circle at 
		calc((var(--d_tn) + var(--d_ab) / 4) * var(--rel-unit))
		calc((var(--rel-height) - var(--d_au) - var(--d_tn) - var(--r_l) * 0.65) * var(--rel-unit)),
		#fff calc(0.01 * var(--rel-unit)),
		#0000 0
	),
	exclude radial-gradient(
		circle at 
		calc((var(--d_tn) + var(--d_ab) / 4) * var(--rel-unit))
		calc((var(--rel-height) - var(--d_au) - var(--d_tn) + var(--r_l) * 0.65) * var(--rel-unit)),
		#fff calc(0.01 * var(--rel-unit)),
		#0000 0
	),
	add radial-gradient(
		circle at 
		calc((var(--d_tn) + var(--d_ab) / 4) * var(--rel-unit))
		calc((var(--rel-height) - var(--d_au) - var(--d_tn) + var(--r_l) * 0.65) * var(--rel-unit)),
		#fff calc(0.01 * var(--rel-unit)),
		#0000 0
	),
	exclude radial-gradient(
		circle at 
		calc((var(--d_tn) + var(--d_ab) / 4 + var(--r_l) * 0.65) * var(--rel-unit))
		calc((var(--rel-height) - var(--d_au) - var(--d_tn)) * var(--rel-unit)),
		#fff calc(0.01 * var(--rel-unit)),
		#0000 0
	),
	add radial-gradient(
		circle at 
		calc((var(--d_tn) + var(--d_ab) / 4 + var(--r_l) * 0.65) * var(--rel-unit))
		calc((var(--rel-height) - var(--d_au) - var(--d_tn)) * var(--rel-unit)),
		#fff calc(0.01 * var(--rel-unit)),
		#0000 0
	),
	/* fill in circle in sun */
	exclude radial-gradient(
		circle at 
		calc((var(--d_tn) + var(--d_ab) / 4) * var(--rel-unit))
		calc((var(--rel-height) - var(--d_au) - var(--d_tn)) * var(--rel-unit)),
		#fff calc(var(--r_m) * var(--rel-unit)),
		#0000 0
	),
	add radial-gradient(
		circle at 
		calc((var(--d_tn) + var(--d_ab) / 4) * var(--rel-unit))
		calc((var(--rel-height) - var(--d_au) - var(--d_tn)) * var(--rel-unit)),
		#fff calc(var(--r_m) * var(--rel-unit)),
		#0000 0
	),
	/* sun rays */
	calc((var(--d_ab) / 4 + var(--d_tn)) * var(--rel-unit)) 0% / 100% 80%
	exclude conic-gradient(
		from calc(270deg - var(--theta_l) + atan(-1 * sin(2 * pi / 12 * 2) / cos(2 * pi / 12 * 2)))
		at
		calc((var(--r_l) * cos(2 * pi / 12 * 2)) * var(--rel-unit))
		calc((var(--sun-y) - var(--r_l) * sin(2 * pi / 12 * 2)) * var(--rel-unit)),
		var(--sun-ray)
	),
	calc((var(--d_ab) / 4 + var(--d_tn)) * var(--rel-unit)) 0% / 100% 80%
	exclude conic-gradient(
		from calc(270deg - var(--theta_l) + atan(-1 * sin(2 * pi / 12 * 1) / cos(2 * pi / 12 * 1)))
		at
		calc((var(--r_l) * cos(2 * pi / 12 * 1)) * var(--rel-unit))
		calc((var(--sun-y) - var(--r_l) * sin(2 * pi / 12 * 1)) * var(--rel-unit)),
		var(--sun-ray)
	),
	calc((var(--d_ab) / 4 + var(--d_tn)) * var(--rel-unit)) 0%
	exclude conic-gradient(
		from calc(270deg - var(--theta_l) + atan(-1 * sin(2 * pi / 12 * -1) / cos(2 * pi / 12 * -1)))
		at
		calc((var(--r_l) * cos(2 * pi / 12 * -1)) * var(--rel-unit))
		calc((var(--sun-y) - var(--r_l) * sin(2 * pi / 12 * -1)) * var(--rel-unit)),
		var(--sun-ray)
	),
	calc((var(--d_ab) / 4 + var(--d_tn)) * var(--rel-unit)) calc((var(--sun-y)) * var(--rel-unit))
	exclude conic-gradient(
		from calc(270deg - var(--theta_l) + atan(-1 * sin(2 * pi / 12 * -2) / cos(2 * pi / 12 * -2)))
		at
		calc((var(--r_l) * cos(2 * pi / 12 * -2)) * var(--rel-unit))
		calc((-1 * var(--r_l) * sin(2 * pi / 12 * -2)) * var(--rel-unit)),
		var(--sun-ray)
	),
	100% calc((var(--sun-y)) * var(--rel-unit))
	exclude conic-gradient(
		/* from calc(270deg - var(--theta_l) - atan(1 * sin(2 * pi / 12 * -3) / cos(2 * pi / 12 * -3))) this line causes it to render VERY differently depending on if you're using Firefox or Chrome... pretty interesting */
		from calc(var(--theta_l) * -1)
		at
		calc((var(--d_ab) / 4 + var(--d_tn) + var(--r_l) * cos(2 * pi / 12 * -3)) * var(--rel-unit))
		calc((-1 * var(--r_l) * sin(2 * pi / 12 * -3)) * var(--rel-unit)),
		var(--sun-ray)
	),
	100% calc((var(--sun-y)) * var(--rel-unit))
	exclude conic-gradient(
		from calc(90deg - var(--theta_l) + atan(-1 * sin(2 * pi / 12 * -4) / cos(2 * pi / 12 * -4)))
		at
		calc((var(--d_ab) / 4 + var(--d_tn) + var(--r_l) * cos(2 * pi / 12 * -4)) * var(--rel-unit))
		calc((-1 * var(--r_l) * sin(2 * pi / 12 * -4)) * var(--rel-unit)),
		var(--sun-ray)
	),
	0% calc((var(--sun-y)) * var(--rel-unit)) / calc((var(--d_ab) / 4 + var(--d_tn)) * var(--rel-unit)) 100%
	exclude conic-gradient(
		from calc(90deg - var(--theta_l) + atan(-1 * sin(2 * pi / 12 * -5) / cos(2 * pi / 12 * -5)))
		at
		calc((var(--d_ab) / 4 + var(--d_tn) + var(--r_l) * cos(2 * pi / 12 * -5)) * var(--rel-unit))
		calc((-1 * var(--r_l) * sin(2 * pi / 12 * -5)) * var(--rel-unit)),
		var(--sun-ray)
	),
	0% 100% / calc((var(--d_ab) / 4 + var(--d_tn)) * var(--rel-unit)) 100%
	exclude conic-gradient(
		from calc(90deg - var(--theta_l) + atan(-1 * sin(2 * pi / 12 * -6) / cos(2 * pi / 12 * -6)))
		at
		calc((var(--d_ab) / 4 + var(--d_tn) + var(--r_l) * cos(2 * pi / 12 * -6)) * var(--rel-unit))
		calc((var(--sun-y) - var(--r_l) * sin(2 * pi / 12 * -6)) * var(--rel-unit)),
		var(--sun-ray)
	),
	0% 100% / calc((var(--d_ab) / 4 + var(--d_tn)) * var(--rel-unit)) 100%
	exclude conic-gradient(
		from calc(90deg - var(--theta_l) + atan(-1 * sin(2 * pi / 12 * -7) / cos(2 * pi / 12 * -7)))
		at
		calc((var(--d_ab) / 4 + var(--d_tn) + var(--r_l) * cos(2 * pi / 12 * -7)) * var(--rel-unit))
		calc((var(--sun-y) - var(--r_l) * sin(2 * pi / 12 * -7)) * var(--rel-unit)),
		var(--sun-ray)
	),
	0% 0% / calc((var(--d_ab) / 4 + var(--d_tn)) * var(--rel-unit)) 80%
	exclude conic-gradient(
		from calc(90deg - var(--theta_l) + atan(-1 * sin(2 * pi / 12 * -8) / cos(2 * pi / 12 * -8)))
		at
		calc((var(--d_ab) / 4 + var(--d_tn) + var(--r_l) * cos(2 * pi / 12 * -8)) * var(--rel-unit))
		calc((var(--sun-y) - var(--r_l) * sin(2 * pi / 12 * -8)) * var(--rel-unit)),
		var(--sun-ray)
	),
	0% 0% / 100% 75%
	exclude conic-gradient(
		from calc(90deg - var(--theta_l) + atan(sin(2 * pi / 12 * -9) / cos(2 * pi / 12 * -9)))
		at
		calc((var(--d_ab) / 4 + var(--d_tn) + var(--r_l) * cos(2 * pi / 12 * -9)) * var(--rel-unit))
		calc((var(--sun-y) - var(--r_l) * sin(2 * pi / 12 * -9)) * var(--rel-unit)),
		var(--sun-ray)
	),
	calc((var(--d_ab) / 4 + var(--d_tn)) * var(--rel-unit)) 0% / 100% 80%
	exclude conic-gradient(
		from calc(270deg - var(--theta_l))
		at
		calc((var(--r_l) * cos(2 * pi / 12 * 0)) * var(--rel-unit))
		calc((var(--sun-y) - var(--r_l) * sin(2 * pi / 12 * 0)) * var(--rel-unit)),
		var(--sun-ray)
	),
	
	/* fill in the circle */
	intersect radial-gradient(
		circle at
		calc((var(--d_tn) + var(--d_ab) / 4) * var(--rel-unit))
		calc((var(--moon-y)) * var(--rel-unit)),
		#0000 calc(var(--d_tm) * var(--rel-unit)),
		#fff calc(var(--d_tm) * var(--rel-unit))
	),
	/* left-most ray 2 */
	/* top left/
	calc((var(--d_tn) + var(--d_ab) / 4) * var(--rel-unit)) 
	calc((var(--rel-height) - var(--y_m-d_ab_4) + var(--d_tm)) * var(--rel-unit))
	exclude conic-gradient(
		from calc(90deg - var(--theta_gb) + atan(-1 * sin(2 * pi / 16 * 8 + pi / 16) / cos(2 * pi / 16 * 8 + pi / 16)))
		at 
		calc((var(--d_ab) / 4 + var(--d_tn) + var(--d_ts) * cos(2 * pi / 16 * 8 + pi / 16)) * var(--rel-unit))
		calc((var(--moon-y) - var(--d_ts) * sin(2 * pi / 16 * 8 + pi / 16)) * var(--rel-unit)),
		var(--moon-ray)
	), */
	/* left-most ray 1 */
	top left/
	calc((var(--d_tn) + var(--d_ab) / 4) * var(--rel-unit)) 
	calc((var(--rel-height) - var(--y_m-d_ab_4) + var(--d_tm)) * var(--rel-unit))
	exclude conic-gradient(
		from calc(90deg - var(--theta_gb) + atan(-1 * sin(2 * pi / 16 * 8 + pi / 16) / cos(2 * pi / 16 * 8 + pi / 16)))
		at 
		calc((var(--d_ab) / 4 + var(--d_tn) + var(--d_ts) * cos(2 * pi / 16 * 8 + pi / 16)) * var(--rel-unit))
		calc((var(--moon-y) - var(--d_ts) * sin(2 * pi / 16 * 8 + pi / 16)) * var(--rel-unit)),
		var(--moon-ray)
	),
	top left/
	calc((var(--d_tn) + var(--d_ab) / 4) * var(--rel-unit)) 
	calc((var(--rel-height) - var(--y_m-d_ab_4) + var(--d_tm)) * var(--rel-unit))
	add conic-gradient(
		from calc(90deg - var(--theta_gb) + atan(-1 * sin(2 * pi / 16 * 8 + pi / 16) / cos(2 * pi / 16 * 8 + pi / 16)))
		at 
		calc((var(--d_ab) / 4 + var(--d_tn) + var(--d_ts) * cos(2 * pi / 16 * 8 + pi / 16)) * var(--rel-unit))
		calc((var(--moon-y) - var(--d_ts) * sin(2 * pi / 16 * 8 + pi / 16)) * var(--rel-unit)),
		var(--moon-ray)
	),
	/* 2nd ray from the left */
	top left/
	calc((var(--d_tn) + var(--d_ab) / 4) * var(--rel-unit)) 
	calc((var(--rel-height) - var(--d_tn) - var(--y_m-d_ab_4) + var(--d_tm)) * var(--rel-unit))
	exclude conic-gradient(
		from calc(90deg - var(--theta_gb) + atan(-1 * sin(2 * pi / 16 * 7 + pi / 16) / cos(2 * pi / 16 * 7 + pi / 16)))
		at 
		calc((var(--d_ab) / 4 + var(--d_tn) + var(--d_ts) * cos(2 * pi / 16 * 7 + pi / 16)) * var(--rel-unit))
		calc((var(--moon-y) - var(--d_ts) * sin(2 * pi / 16 * 7 + pi / 16)) * var(--rel-unit)),
		var(--moon-ray)
	),
	/* 3rd ray from the left */
	top left/
	calc((var(--d_tn) + var(--d_ab) / 4) * var(--rel-unit)) 
	calc((var(--rel-height) - var(--d_tn) - var(--y_m-d_ab_4) + var(--d_tm)) * var(--rel-unit))
	exclude conic-gradient(
		from calc(90deg - var(--theta_gb) + atan(-1 * sin(2 * pi / 16 * 6 + pi / 16) / cos(2 * pi / 16 * 6 + pi / 16)))
		at 
		calc((var(--d_ab) / 4 + var(--d_tn) + var(--d_ts) * cos(2 * pi / 16 * 6 + pi / 16)) * var(--rel-unit))
		calc((var(--moon-y) - var(--d_ts) * sin(2 * pi / 16 * 6 + pi / 16)) * var(--rel-unit)),
		var(--moon-ray)
	),
	/* 4th ray from the left */
	top left/
	calc((var(--d_tn) + var(--d_ab) / 4) * var(--rel-unit)) 
	calc((var(--rel-height) - var(--d_tn) - var(--y_m-d_ab_4) + var(--d_tm)) * var(--rel-unit))
	exclude conic-gradient(
		from calc(90deg - var(--theta_gb) + atan(-1 * sin(2 * pi / 16 * 5 + pi / 16) / cos(2 * pi / 16 * 5 + pi / 16)))
		at 
		calc((var(--d_ab) / 4 + var(--d_tn) + var(--d_ts) * cos(2 * pi / 16 * 5 + pi / 16)) * var(--rel-unit))
		calc((var(--moon-y) - var(--d_ts) * sin(2 * pi / 16 * 5 + pi / 16)) * var(--rel-unit)),
		var(--moon-ray)
	),
	/* 5th ray from the left */
	top/100% calc((var(--rel-height) - var(--d_tn) - var(--y_m-d_ab_4) + var(--d_tm)) * var(--rel-unit)) exclude conic-gradient(
		from calc(90deg - var(--theta_gb) + atan(-1 * sin(2 * pi / 16 * 4 + pi / 16) / cos(2 * pi / 16 * 4 + pi / 16)))
		at 
		calc((var(--d_ab) / 4 + var(--d_tn) + var(--d_ts) * cos(2 * pi / 16 * 4 + pi / 16)) * var(--rel-unit))
		calc((var(--moon-y) - var(--d_ts) * sin(2 * pi / 16 * 4 + pi / 16)) * var(--rel-unit)),
		var(--moon-ray)
	),
	/* 6th ray from the left */
	top/100% calc((var(--rel-height) - var(--d_tn) - var(--y_m-d_ab_4) + var(--d_tm)) * var(--rel-unit)) exclude conic-gradient(
		from calc(270deg - var(--theta_gb) + atan(-1 * sin(2 * pi / 16 * 3 + pi / 16) / cos(2 * pi / 16 * 3 + pi / 16)))
		at 
		calc((var(--d_ab) / 4 + var(--d_tn) + var(--d_ts) * cos(2 * pi / 16 * 3 + pi / 16)) * var(--rel-unit))
		calc((var(--moon-y) - var(--d_ts) * sin(2 * pi / 16 * 3 + pi / 16)) * var(--rel-unit)),
		var(--moon-ray)
	),
	/* 7th ray from the left */
	top/
	100% 
	calc((var(--rel-height) - var(--d_tn) - var(--y_m-d_ab_4) + var(--d_tm) - 0.02) * var(--rel-unit)) /* 0.02 is a magic number that fixes the triangle extending too far towards the left */
	exclude
	conic-gradient(
		from calc(270deg - var(--theta_gb) + atan(-1 * sin(2 * pi / 16 * 2 + pi / 16) / cos(2 * pi / 16 * 2 + pi / 16)))
		at 
		calc((var(--d_ab) / 4 + var(--d_tn) + var(--d_ts) * cos(2 * pi / 16 * 2 + pi / 16)) * var(--rel-unit))
		calc((var(--moon-y) - var(--d_ts) * sin(2 * pi / 16 * 2 + pi / 16)) * var(--rel-unit)),
		var(--moon-ray)
	),
	/* 8th ray from the left */
	calc((var(--d_ab) / 4 + var(--d_tn)) * var(--rel-unit)) 0%/
	100%
	calc((var(--rel-height) - var(--d_tn) - var(--y_m-d_ab_4) + var(--d_tm)) * var(--rel-unit))
	exclude conic-gradient(
		from calc(270deg - var(--theta_gb) + atan(-1 * sin(2 * pi / 16 * 1 + pi / 16) / cos(2 * pi / 16 * 1 + pi / 16)))
		at 
		calc((var(--d_ts) * cos(2 * pi / 16 * 1 + pi / 16)) * var(--rel-unit))
		calc((var(--moon-y) - var(--d_ts) * sin(2 * pi / 16 * 1 + pi / 16)) * var(--rel-unit)),
		var(--moon-ray)
	),
	/* 9th ray from the left */
	calc((var(--d_ab) / 4 + var(--d_tn)) * var(--rel-unit)) 0%/
	100%
	calc((var(--rel-height) - var(--d_tn) - var(--y_m-d_ab_4) + var(--d_tm)) * var(--rel-unit))
	exclude conic-gradient(
		from calc(270deg - var(--theta_gb) + atan(-1 * sin(2 * pi / 16 * 0 + pi / 16) / cos(2 * pi / 16 * 0 + pi / 16)))
		at 
		calc((var(--d_ts) * cos(2 * pi / 16 * 0 + pi / 16)) * var(--rel-unit))
		calc((var(--moon-y) - var(--d_ts) * sin(2 * pi / 16 * 0 + pi / 16)) * var(--rel-unit)),
		var(--moon-ray)
	),
	/* right-most ray pt 2 */
	calc((var(--d_ab) / 4 + var(--d_tn)) * var(--rel-unit)) 0%
	exclude conic-gradient(
		from calc(270deg - var(--theta_gb) + atan(-1 * sin(2 * pi / 16 * -1 + pi / 16) / cos(2 * pi / 16 * -1 + pi / 16)))
		at 
		calc((var(--d_ts) * cos(2 * pi / 16 * -1 + pi / 16)) * var(--rel-unit))
		calc((var(--moon-y) - var(--d_ts) * sin(2 * pi / 16 * -1 + pi / 16)) * var(--rel-unit)),
		var(--moon-ray)
	),
	/* right-most ray pt 1 */
	calc((var(--d_ab) / 4 + var(--d_tn)) * var(--rel-unit)) 0%
	add conic-gradient(
		from calc(270deg - var(--theta_gb) + atan(-1 * sin(2 * pi / 16 * -1 + pi / 16) / cos(2 * pi / 16 * -1 + pi / 16)))
		at 
		calc((var(--d_ts) * cos(2 * pi / 16 * -1 + pi / 16)) * var(--rel-unit))
		calc((var(--moon-y) - var(--d_ts) * sin(2 * pi / 16 * -1 + pi / 16)) * var(--rel-unit)),
		var(--moon-ray)
	),
	/* upper circle of crescent moon */
	add radial-gradient(
		circle at
		calc((var(--d_tn) + var(--d_ab) / 4) * var(--rel-unit))
		calc((var(--rel-height) - var(--d_ac) - var(--d_tn) + var(--d_cf) / 2) * var(--rel-unit)),
		#fff calc(var(--r_l) * var(--rel-unit)),
		#0000 0
	),
	/* bottom circle of crescent moon */
	exclude radial-gradient(
		circle at
		calc((var(--d_tn) + var(--d_ab) / 4) * var(--rel-unit))
		calc((var(--rel-height) - var(--y_m-d_ab_4) - var(--d_tn)) * var(--rel-unit)),
		#fff calc(var(--r_mq) * var(--rel-unit)),
		#0000 0
	),
	linear-gradient(#fff, #fff);
	mask-repeat: no-repeat;
}

.flag-maryland{
	--color-red: #9d2235;
	--color-gold: #eaaa00;
	--height: 500;
	aspect-ratio: 5/3;
	--rel-unit: 1px * var(--height);
	height: calc(1px * var(--height));
	--radius: calc(12.8 / 400 * var(--height));
	--distance-from-top-quadrant: calc(0.14 * var(--height) * 1/4 + var(--radius));
	--distance-from-side-quadrant: calc(var(--height) * (5/3 / 4 - (142/400 - var(--radius) / var(--height))));

	background: conic-gradient(at center, var(--color-red) 25%, var(--color-gold) 25% 50%, var(--color-red) 50% 75%, var(--color-gold) 0);
	mask:
	calc(2/3 * 100%)0%/25%25%radial-gradient(circle at calc(var(--distance-from-side-quadrant) * 1px - var(--radius) * 1px)100%, #fff calc(var(--radius) * 1px), #0000 0)no-repeat,
	calc(2/3 * 100%)0%/calc(25% - var(--distance-from-side-quadrant) * 1px)25%linear-gradient(#0000 calc(100% - var(--radius) * 1px), #fff 0)no-repeat,
	calc(2/3 * 100%)calc(1px * var(--distance-from-top-quadrant))/25%calc(25% - 1px * var(--distance-from-top-quadrant))linear-gradient(90deg, #0000 calc(100% - var(--radius) * 1px), #fff 0)no-repeat,
	exclude calc(2/3 * 100%)0%/25%25%radial-gradient(circle at 100%calc(var(--distance-from-top-quadrant) * 1px), #fff calc(var(--radius) * 1px), #0000 0)no-repeat,
	
	exclude 0%100%/50%50%conic-gradient(at center, #0000 25%, #fff 25% 50%, #0000 50% 75%, #fff 0)no-repeat,
	exclude 100%0%/50%50%conic-gradient(at center, #0000 25%, #fff 25% 50%, #0000 50% 75%, #fff 0)no-repeat,
	conic-gradient(at center, #fff 25%, #0000 25% 50%, #fff 50% 75%, #0000 0),
	exclude linear-gradient(90deg, #0000 calc(11/12 * 100%), blue 0),
	exclude calc(-1/12 * 5/3 * var(--height) * 1px)100%linear-gradient(atan(3/5), #0000 50%, blue 0)no-repeat,
	exclude calc(1/12 * 5/3 * var(--height) * 1px)100%linear-gradient(atan(3/5), #0000 50%, blue 0)no-repeat, 
	0/calc(1/6 * 5/3 * var(--height) * 1px) 100% linear-gradient(90deg,var(--color-gold)50%,#0000 0)
}

.flag-minnesota{
	
	--color-dark-blue:#002C5A;
	--color-light-blue:#73C6E5;
	--height: 500;
	--width:  var(--height) * 5/3;
	--star-mid-x:calc(21 / 60 * var(--height));
	--radius: calc(11/60 * var(--height));
	--radius-inner: hypot(var(--height) * (77.5 / 300 - 21 / 60), (sin(3 * 2 * pi / 8) - 1) / (300 * cos(3 * 2 * pi / 8)) * 27.5 * var(--height));
	aspect-ratio: 5/3;
	--center-angle:atan(0.5 * var(--height) / ((2.8 - 1.95) * var(--width) / 5));
	height: calc(1px * var(--height));
	background:conic-gradient(from calc(90deg - var(--center-angle)) at calc(1.95/5 * var(--height) * 5/3 * 1px), var(--color-light-blue) calc(2 * var(--center-angle)), var(--color-dark-blue) 0);
	clip-path: polygon(0%0%,
	calc(1px * var(--star-mid-x))0%,

	calc(1px * var(--star-mid-x))calc(50% - var(--radius) * 1px),
	calc(1px * (var(--star-mid-x) - var(--radius-inner) * cos(1 * 2 * pi / 8 + pi / 8)))calc((var(--height) / 2 - var(--radius-inner) * sin(1 * 2 * pi / 8 + pi / 8)) * 1px),
	calc(1px * (var(--star-mid-x) - var(--radius) * cos(1 * 2 * pi / 8)))calc(50% - var(--radius) * cos(1 * 2 * pi / 8) * 1px),
	calc(1px * (var(--star-mid-x) - var(--radius-inner) * cos(8 * 2 * pi / 8 + pi / 8)))calc(50% - (var(--radius-inner) * sin(8 * 2 * pi / 8 + pi / 8)) * 1px),
	calc(1px * (var(--star-mid-x) - var(--radius)))50%,
	calc(1px * (var(--star-mid-x) - var(--radius-inner) * cos(7 * 2 * pi / 8 + pi / 8)))calc(50% - (var(--radius-inner) * sin(7 * 2 * pi / 8 + pi / 8)) * 1px),
	calc(1px * (var(--star-mid-x) + var(--radius) * cos(3 * 2 * pi / 8)))calc(50% - var(--radius) * cos(3 * 2 * pi / 8) * 1px),
	calc(1px * (var(--star-mid-x) - var(--radius-inner) * cos(6 * 2 * pi / 8 + pi / 8)))calc(50% - (var(--radius-inner) * sin(6 * 2 * pi / 8 + pi / 8)) * 1px),
	calc(1px * var(--star-mid-x))calc(50% + var(--radius) * 1px),
	calc(1px * (var(--star-mid-x) - var(--radius-inner) * cos(5 * 2 * pi / 8 + pi / 8)))calc(50% - (var(--radius-inner) * sin(5 * 2 * pi / 8 + pi / 8)) * 1px),
	calc(1px * (var(--star-mid-x) - var(--radius) * cos(5 * 2 * pi / 8)))calc(50% - var(--radius) * cos(5 * 2 * pi / 8) * 1px),
	calc(1px * (var(--star-mid-x) - var(--radius-inner) * cos(4 * 2 * pi / 8 + pi / 8)))calc(50% - (var(--radius-inner) * sin(4 * 2 * pi / 8 + pi / 8)) * 1px),
	calc(1px * (var(--star-mid-x) + var(--radius)))50%,
	calc(1px * (var(--star-mid-x) - var(--radius-inner) * cos(3 * 2 * pi / 8 + pi / 8)))calc(50% - (var(--radius-inner) * sin(3 * 2 * pi / 8 + pi / 8)) * 1px),
	calc(1px * (var(--star-mid-x) + var(--radius) * cos(7 * 2 * pi / 8)))calc(50% - var(--radius) * cos(7 * 2 * pi / 8) * 1px),
	calc(1px * (var(--star-mid-x) - var(--radius-inner) * cos(2 * 2 * pi / 8 + pi / 8)))calc(50% - (var(--radius-inner) * sin(2 * 2 * pi / 8 + pi / 8)) * 1px),
	
	calc(1px * var(--star-mid-x))calc(50% - var(--radius) * 1px),
	calc(1px * var(--star-mid-x))0%,
	100%0%,100%100%,0%100%
	);
}

.flag-antigua-and-barbuda{
	--height: 500;
	--aspect-ratio: 3/2;
	--width:  var(--height) * var(--aspect-ratio);
	aspect-ratio: var(--aspect-ratio);
	height: calc(1px * var(--height));

	--radius-inner: calc(7.5/46 * var(--height));
	--radius: calc(15/46 * var(--height));

	--red: #cf0821;
	--blue: #0073c7;
	--yellow: #fcd20e;
	background: 
	radial-gradient(circle at 50% calc(18/46 * var(--height) * 1px), blue calc(1px * var(--radius-inner)), #fff calc(1px * var(--radius-inner)) calc(1px * var(--radius)), #0000 0),
	var(--yellow);

}.main-credits{
	background-color: white;
}

.creditee{
	display: flex;
	flex-direction: column;
	text-align: left;
}

.credits-subcategory{
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	hr{
		margin: 0.5rem;
		border: 1px solid lightgray;
	}
	.creditee:last-of-type{
		margin-bottom: 1rem;
	}
}

.credits-wrapper{

	margin-bottom: 1.5rem;

	h2, h3{
		font-family: Nunito;
		
	}

	h2{
		color: var(--logo_dark);
		margin-bottom: 1rem;
		font-size: 28px;
	}

	h3{
		background-color: var(--logo_dark);
		color: white;
		width: max-content;
		text-align: center;
		margin-inline: auto;
		padding-block: 0.3rem;
		padding-inline: 1rem;
		border-radius: 0.6rem;
	}

	a, span{
		font-family: Nunito;
	}

	a{
		font-weight: bold;
		color: black !important;
	}
}/* .page-loading-wrapper{
	width: 100%;
	height: 100vh;
	overflow-y: hidden;
} */

/* .page-loading-spinner{
	animation: expand-spinner 0.5s 0.5s forwards;
} */



/* .page-loading-sphere{
	aspect-ratio: 1;
	width: 20px;
	background-image: radial-gradient(circle at center,var(--color-main) var(--sphere-radius),#0000 0 );
	position: absolute;
	left: 50%;
	top: 50%;
	animation: pulsing 1s infinite;
} */





/* various resets */
*{
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
img{
    max-width: 100%;
}
p{
    max-width: 65ch;
}
/* fonts */
@font-face{

    font-family: anjaEliane;
    src: url('/fonts/AnjaEliane.ttf');
}
@font-face{
    font-family: reenieBeenie;
    src: url('/fonts/ReenieBeenie-Regular.ttf')
}
@font-face {
    font-family: mozillaTwemoji;
    src: url('/fonts/Twemoji.Mozilla.ttf');
}
@font-face {
    font-family: KF;
    src: url('/fonts/KFhimajiMOCO.otf');
}
@font-face {
    font-family: wakuwaku;
    src: url('/fonts/mini-wakuwaku.otf');
}
@font-face {
    font-family: wakuwaku-maru;
    src: url('/fonts/mini-wakuwaku-maru.otf');
}
/* headings */
h1{
    font-family: anjaEliane, sans-serif;
    font-weight: 1000;
    -webkit-text-stroke: 2px white;
    text-shadow: 0px 3px 2px var(--logo_dark);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: #0000;
    color: #0000;
    background-image: linear-gradient(0deg, var(--logo_dark), var(--logo_light));
    letter-spacing: 1.5px;
    font-size: 60px;
    margin-block: 1.5rem;
}
@media screen and (max-width: 650px){
    h1{
        font-size: 35px;
        -webkit-text-stroke: 1px white;
    }    
}
h2 {
	font-family: 'Nunito', sans-serif;
	display: inline-block;
	margin-bottom: 0px;
	/* font-size: 28px; */
	letter-spacing: 0.5px;
	font-weight: 800;
}
/* links */
.maindiv, footer{
    a{
        color: var(--logo_dark);
    }
}
/* utility styles */
body:has(.hide-footer) footer{
    display: none;
}
.unselectable{
    user-select: none;
}
.standard-width{
    width: clamp(65%, var(--width-percentage, 65%), 95%);
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-inline: auto;
}
@property --sky-opacity-time{
    syntax: "<time>";
    inherits: true;
    initial-value: 0.6s;
}
.sky-wrapper{
    /* background-image: url('/images/bg/sky_medium.png'); */
    /* background-color: skyblue; */
    
    background-attachment: fixed;
    width: 100%;
    height: 100vh;
    position: fixed;
    z-index: -1;
    opacity: var(--sky-opacity, 1);
    transition: opacity var(--sky-opacity-time);
}
html:has(.main-idol){
    --sky-opacity: 0;
}
#animated-sky{
    display: none;
}
#animated-sky:focus{
    opacity: 0;
}
.btn{
    background-color: var(--logo_dark);
    border: none;
    padding: 5px 10px;
    color: white;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    font-size: 16px;
    border-radius: 6px;     
}
/* animations */
.fade-in{
    animation: fade-in 0.5s;
    opacity: 0;
    animation-fill-mode: forwards;
}
@keyframes fade-in {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}
@keyframes fade-in-idle {
    0% { opacity: 0}
    100% { opacity: 0}
}
.scale-in {
    transform: scale(0);
    animation: scale-in ease-in-out 0.3s;
    animation-fill-mode: forwards;
    overflow: hidden;
}
@keyframes scale-in {
    0% { transform: scale(0); }
    100% {transform: scale(1); }
}
.enter-smooth{
    animation: enter-smooth 0.5s;
}
@keyframes enter-smooth {
    0% {
        opacity: 0;
        transform: translateY(2rem);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}
.scale-on-hover {
    transition: transform 0.1s;
    &:hover {
        transform: scale(1.05);
    }
}
/* navbar */
#header{
    width: 100%;
    position: sticky;
    top: 0px;
    z-index: 99;
    /* TEMPORARY */
    overflow-x: hidden; 
}
@media screen and (max-width: 650px) {

    .navbar-link{
        font-size: 13px;
    }

    .hide-on-mobile{
        display: none !important;
    }

    .navbar-link.hide-on-mobile{
        display: none;
    }
    .navbar.navbar {
        padding-inline: 0;
    }
}
@media screen and (min-width: 650px) {

    .show-on-mobile{
        display: none !important;
    }

    .navbar-link.show-on-mobile{
        display: none;
    }
}
.navbar{
    line-height: 1;
    padding-block: 15px;
    padding-inline: 40px;
    background-color: white;
    box-shadow: 0px 4px 5px rgba(0,0,0,0.03);
}
.navbar ul {
    display: flex;
    justify-content: space-evenly;
    list-style-type: none;
    padding: 0;
    height: 2rem;
}
.navbar li {
    height: 1em;
    margin-block: auto;
    position: relative;
}
.navbar ul li a {
    color: black;
    text-decoration: none;
    /* padding: 5px; */
}
.navbar-link{
    margin: 0;
    font-family: 'Raleway', sans-serif;
    letter-spacing: 1px;
    font-weight: bold;
}
h4 {
    margin: 0;
    font-family: 'Raleway', sans-serif;
    letter-spacing: 1px;
}
.line-animation {
    background: linear-gradient(90deg, var(--clr_line_start, #FE81D7) 0%, var(--clr_line_end, #FE81D7) 100%);
    height: 2px;
    opacity: 0;
    transform: scale(0, 1);
    transform-origin: center left;
    transition-duration: 800ms;
    transition-timing-function: cubic-bezier(0, 0.7, 0.22, 1);
    max-width: 100%;
    width: 100%;
    position: absolute;
    top: 110%;
}
.linkbutton:is(:hover, :focus, :focus-within) + .line-animation{
    opacity: 1;
    transform: scale(1,1);
    cursor: pointer;
}
/* footer */
footer{
    --footer-height: 19vh;
    --footer-border: 4px;

    width: 100%;
    height: var(--footer-height);
    background-color: white;
    z-index:9;
    border-top: var(--footer-border) solid var(--logo_dark);
    
}
.footer-content{
    height: calc(var(--footer-height) - var(--footer-border));
    display: flex;
    flex-direction: column;
    margin-inline: auto;
    width: max-content;
}
.footer-content-main{
    display: flex;
    height: 80%;
    justify-content: space-between;
}
.footer-credits{
    text-align: center;
    font-family: 'Nunito', sans-serif;
    font-size: 12px;
}
.footer-content-main img{
    height: 95%;
    aspect-ratio: 1;
}
.footer-content ul{
    margin-block: auto;
    list-style: none;
    /* padding-left: 20px; */
}
.footer-content li{
    text-align: left;
    font-family: 'Nunito', sans-serif;
    font-size: 16px;
}
/* news articles */
.news-container{
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-inline:auto;
    gap: 0.5rem;
}
.article-text-container{
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin-inline: 1.2rem;
    grid-column: 2;
    gap: 0.2rem;
}
.article-description, .article-date{
    /* margin-top: 1vh;
    margin-left: 0px; */
}
.article-container{
    /* display: flex;
    flex-direction: row; */
    --container-height: 8rem;
    --container-radius: 20px;
    display: grid;
    grid-template-columns: var(--container-height) auto;
    text-align: left;
    border-radius: var(--container-radius);
    
    border: var(--border-thickness) solid var(--title-color);
    --border-thickness: 1px;
    height: var(--container-height);
    overflow: hidden;
    img {
        height: var(--container-height);
        width: var(--container-height);
        box-sizing: content-box;
        border-right: var(--border-thickness) solid var(--title-color);
        
        /* border-radius: var(--container-radius) 0 0 var(--container-radius); */
    }
}
.article-container > .article-text-container > a > h2, .article-date{
    color: var(--title-color, black);
}
.article-date{
    font-weight: 750;
}
.article-body-preview p{
    /* absolute black magic */
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    -webkit-line-clamp: 2;
    line-clamp: 2;
}
.article-preview{
    flex: 1;
    text-decoration: none;
    color: black;
    h2{
        color: var(--title-color);
    }
}
.article-preview:nth-of-type(9n + 1) .article-container{
    --title-color: var(--logo_dark);
    background-color: var(--aika_soft);
}
.article-preview:nth-of-type(9n + 2) .article-container{
    --title-color: var(--hua_font);
    background-color: var(--hua_soft);
}
.article-preview:nth-of-type(9n + 3) .article-container{
    --title-color: var(--aqua_font);
    background-color: var(--aqua_soft);
}
.article-preview:nth-of-type(9n + 4) .article-container{
    --title-color: var(--erity_font);
    background-color: var(--erity_soft);
}
.article-preview:nth-of-type(9n + 5) .article-container{
    --title-color: var(--izumi_font);
    background-color: var(--izumi_soft);
}
.article-preview:nth-of-type(9n + 6) .article-container{
    --title-color: var(--kana_font);
    background-color: var(--kana_soft);
}
.article-preview:nth-of-type(9n + 7) .article-container{
    --title-color: var(--rui_font);
    background-color: var(--rui_soft);
}
.article-preview:nth-of-type(9n + 8) .article-container{
    --title-color: var(--chiyo_font);
    background-color: var(--chiyo_soft);
}
.article-preview:nth-of-type(9n + 9) .article-container{
    --title-color: var(--rei_strong);
    background-color: var(--rei_soft);
}
.article-image{
    max-height: 150px;
    border-radius: 15px;
    margin-block:auto;
}
/* .article-description{
    flex-grow: 1;
} */
.article-title{
    text-decoration: underline;
    transition: 0.1s;
}
/* .article-title:is(:hover, :focus, :focus-within){
    filter:brightness(0.7);
} */
#root {
    text-align: center;
    display: flex;
    flex-direction: column;
    background-repeat: repeat;
    min-height: 100svh;
    position: relative;
    align-items: center;
}
.aika-bg{
    background: linear-gradient(90deg, var(--aika_main) 0%, var(--aika_secondary) 100%);
}
.maindiv, main {
    display: flex;
    flex-direction: column;    
    min-height: 100svh;
}
p {
    font-family: 'Nunito', sans-serif;
    font-size: 1rem;
    /* margin-inline: auto; */
}
/*
.page-heading{
    background: linear-gradient(90deg, rgb(255, 196, 226) 0%, rgb(178, 241, 246) 100%);
    margin-bottom: 25px;
    font-family: 'Raleway', sans-serif;
    padding: 5px 20px 5px;
    font-size: 50px;
    text-align: center;
    display: inline-block;
    color: white;
    text-shadow: 1px 4px 5px rgba(0,0,0,0.1);
    box-shadow: 1px 4px 5px rgba(0,0,0,0.2);
    letter-spacing: 2px;
}*/
/* .page-heading{
    font-family:anjaEliane;
    letter-spacing: 1.5px;
    color: var(--logo_dark);
    font-size: 54px;
    margin-bottom: 25px;
} */
.page-description{
    width: 80%;
    margin-inline:auto;
    text-align: center;
    padding-bottom: 1rem;
    /* text-wrap: balance; */
    > p{
        margin-inline: auto;
    }
}
.top-border-flair{
    padding-top: 20px;
    border-image-slice: 1;
    border-block-start: 4px solid;
    border-image-source: radial-gradient(circle at top center, #ff6c9f, transparent var(--circle-size));
}
/* language picker */
#language-picker{
    font-size: inherit;
    font-family: inherit;
    font-size: 20px;
}
#language-picker-container{
    font-family: mozillaTwemoji, 'Open Sans', sans-serif;
    position: fixed;
    bottom: 0px;
    left: 0px;
    margin: 0.5em;
    display: flex;
    flex-direction: column;
    gap:0.2em;
    z-index: 490;
}
#menu-toggle{
    display: none;
}
/* social media icons */
@property --platform-icon-url {
    syntax: "<url>";
    inherits: true;
}
.social-media-link{
    display: block;
    border-radius: 100%;
    height: calc(1px * var(--display-size));
    aspect-ratio: 1;
    transition: transform 0.1s, filter 0.1s;
}
.social-media-link:is(:hover, :focus){
    filter:brightness(0.7);
    transform: translateY(-1vh);
}
.socials-container {
    display: flex;
    justify-content: center;
    width:100%;
    gap: 0.5rem;
}
/* .socials-container a {
    margin-inline: 0.5em;
} */
/* @container (max-width: calc(45px * 4 + 0.5em * 8)){
    .social-media-link {
        margin-inline: 2% !important;
        --social-icons-size: 35px;
    }
} */
@media screen and (max-width: 650px){
    .standard-width{
        width: 100%;
    }
}
/* @media screen and (max-width: 650px){

    #animated-sky{
        display: none !important;
    }

    .standard-width{
        width: clamp(65%, var(--width-percentage, 95%), 95%) !important;
    }

    .maindiv{
        padding-top: 30px;
    }

    .line-animation{
        display: none;
    }

    #header{
        --burger-distance: 13vw;
    }

    #menu-toggle{
        display: block;
        margin: 0.5em;
        width: var(--burger-distance);
        height: var(--burger-distance);
        position: fixed;
        z-index: 490;
    }

    .navbar{
        display: none;
    }

    #navlist{
        height: 100%;
        display: flex;
        flex-direction: column;
        justify-content: space-evenly;
        align-items: center;
        list-style-type: none;
        padding: 0;
    }

    .navbar ul{
        flex-wrap: wrap;
    }

    #navlist li{
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        width: 100vw;
        font-size: 25px;
        padding-top: 3vh;
    }

    #navlist:first-child{
        padding-top: var(--burger-distance);
    }

    #menu-toggle:checked + .navbar{
        display: flex;
    }
} */
/* activate animations only if the user's prefers-reduced-motion is set to no-preference */
@media (prefers-reduced-motion: no-preference) {
    
    /* text fade-in animation */

    /* main, .maindiv {
        animation: 0.5s ease-out 0s 1 fadeIn;
    } */

    @keyframes fadeIn {
        0% { opacity: 0; }
        100% { opacity: 1; }
    }

    /* animated sky background */

    #animated-sky{
        display: block;
    }

}
.social-media-icon{ 
    max-width: 100%; 
    mask-size: 100%; 
    mask-image: url('/images/socials/spritesheet2.png');
    mask-mode: luminance;
    background-color: var(--logo-color);
    border-radius: 50%;
}
.social-media-icon-applemusic { mask-position: 0 0%; mask-size: 100%; }
.social-media-icon-bandcamp { mask-position: 0 6.25%; mask-size: 100%; }
.social-media-icon-bilibili { mask-position: 0 12.5%; mask-size: 100%; }
.social-media-icon-carrd { mask-position: 0 18.75%; mask-size: 100%; }
.social-media-icon-discord { mask-position: 0 25%; mask-size: 100%; }
.social-media-icon-facebook { mask-position: 0 31.25%; mask-size: 100%; }
.social-media-icon-instagram { mask-position: 0 37.5%; mask-size: 100%; }
.social-media-icon-kickstarter { mask-position: 0 43.75%; mask-size: 100%; }
.social-media-icon-kofi { mask-position: 0 50%; mask-size: 100%; }
.social-media-icon-patreon { mask-position: 0 56.25%; mask-size: 100%; }
.social-media-icon-reddit { mask-position: 0 62.5%; mask-size: 100%; }
.social-media-icon-soundcloud { mask-position: 0 68.75%; mask-size: 100%; }
.social-media-icon-spotify { mask-position: 0 75%; mask-size: 100%; }
.social-media-icon-tiktok { mask-position: 0 81.25%; mask-size: 100%; }
.social-media-icon-twitch { mask-position: 0 87.5%; mask-size: 100%; }
.social-media-icon-x { mask-position: 0 93.75%; mask-size: 100%; }
.social-media-icon-youtube { mask-position: 0 100%; mask-size: 100%; }:root {

    --aika_main: #FFC4E2;
    --aika_secondary: #B2F1F6;
    --aika_strong: #FD62A6;
    --aika_light: #FFE8E2;
    --aika_soft: #FFF0F8;
    --aika_font: #E95284;

    --aqua_main: #BB7DFF;
    --aqua_secondary: #4C3E7E;
    --aqua_strong: #A443FF;
    --aqua_light: #BB7DFF;
    --aqua_soft: #F2F0FF;
    --aqua_font: #8A43FF;

    --chiyo_main: #F9A857;
    --chiyo_secondary: #FFCE6F;
    --chiyo_strong: #F8983F;
    --chiyo_light: #FFD984;
    --chiyo_soft: #FFECCE;
    --chiyo_font: #F37501;

    --erity_main: #78AEF8;
    --erity_secondary: #FC94C7;
    --erity_strong: #00AAFF;
    --erity_light: #B6E3FF;
    --erity_soft: #E4F7FF;
    --erity_font: #40B2EA;

    --hua_main: #E7B9FF;
    --hua_secondary: #D980EC;
    --hua_strong: #BD74FF;
    --hua_light: #E0C6FD;
    --hua_soft: #F6ECFF;
    --hua_accent: #F893B7;
    --hua_font: #A443FF;

    --izumi_main: #B5FFF5;
    --izumi_secondary: #BDFFFD;
    --izumi_strong: #75CFE9;
    --izumi_light: #BAFFFC;
    --izumi_soft: #E9FCF7;
    --izumi_font: #42B2D3;

    --kana_main: #C4F488;
    --kana_secondary: #E1F68D;
    --kana_strong: #7CBD49;
    --kana_light: #C4E37B;
    --kana_soft: #E9FFCA;
    --kana_font: #5CC846;
    --kana_accent: #c1a3fc;

    --rei_main: #F9514F;
    --rei_secondary: #FE9F94;
    --rei_strong: #ED454C;
    --rei_light: #FEC3BB;
    --rei_soft: #FFDDE1;
    --rei_font:#ED454C;

    --rui_main: #FFE878;
    --rui_secondary: #FE9F94;
    --rui_strong: #FFC229;
    --rui_light: #FFE878;
    --rui_soft: #FFFBCA;
    --rui_font: #E7A306;

    --logo_light: #FB80A1;
    --logo_dark: #E95284;

    --discord_blue:#5865F2;

    }