@import url('open-iconic/font/css/open-iconic-bootstrap.min.css');

@font-face {
    font-family: 'VT323';
    src: url('/fonts/VT323-Regular.ttf') format('truetype');
}

@font-face {
    font-family: 'Aldrich';
    src: url('/fonts/Aldrich-Regular.ttf') format('truetype');
}

@font-face {
    font-family: 'EncodeSans-Variable';
    src: url('/fonts/EncodeSans-Regular.ttf') format('truetype');
}

/* https://www.svgbackgrounds.com/set/free-svg-backgrounds-and-patterns/ */

:root {
    /* https://coolors.co/424874-9a98b5-5aaf73-afbf9b-cd5334 */
    --main-colour-l6: rgb(172, 215, 185);
    --main-colour-l5: rgb(159, 209, 174);
    --main-colour-l4: rgb(145, 202, 162);
    --main-colour-l3: rgb(131, 195, 150);
    --main-colour-l2: rgb(117, 189, 139);
    --main-colour-l1: rgb(104, 182, 127);
    --main-colour: rgb(90, 175, 115); /* 5AAF73 */
    --main-colour-d1: rgb(80, 165, 105);
    --main-colour-d2: rgb(73, 151, 96);
    --main-colour-d3: rgb(66, 138, 88);
    --main-colour-d4: rgb(60, 124, 79);
    --main-colour-d5: rgb(53, 110, 70);
    --main-colour-d6: rgb(46, 96, 61);
    --danger-colour-l6: rgb(230, 172, 158);
    --danger-colour-l5: rgb(226, 158, 141);
    --danger-colour-l4: rgb(222, 144, 124);
    --danger-colour-l3: rgb(218, 130, 108);
    --danger-colour-l2: rgb(214, 116, 92);
    --danger-colour-l1: rgb(210, 102, 75);
    --danger-colour: rgb(205, 83, 52); /* CD5334 */
    --danger-colour-d1: rgb(196, 78, 49);
    --danger-colour-d2: rgb(180, 72, 45);
    --danger-colour-d3: rgb(163, 65, 41);
    --danger-colour-d4: rgb(147, 59, 37);
    --danger-colour-d5: rgb(131, 52, 33);
    --danger-colour-d6: rgb(114, 46, 29);
    --relaxing-colour-l6: rgb(125, 131, 181);
    --relaxing-colour-l5: rgb(113, 119, 173);
    --relaxing-colour-l4: rgb(100, 107, 166);
    --relaxing-colour-l3: rgb(89, 97, 155);
    --relaxing-colour-l2: rgb(82, 89, 142);
    --relaxing-colour-l1: rgb(74, 81, 130);
    --relaxing-colour: rgb(66, 72, 116); /* 424874 */
    --relaxing-colour-d1: rgb(60, 65, 104);
    --relaxing-colour-d2: rgb(52, 57, 91);
    --relaxing-colour-d3: rgb(45, 49, 78);
    --relaxing-colour-d4: rgb(37, 40, 65);
    --relaxing-colour-d5: rgb(30, 32, 52);
    --relaxing-colour-d6: rgb(22, 24, 39);
    --relaxing-colour-d7: rgb(15, 16, 26);
    --relaxing-colour-d8: rgb(7, 8, 13);
    --neutral-colour-l6: rgb(232, 232, 238);
    --neutral-colour-l5: rgb(220, 220, 229);
    --neutral-colour-l4: rgb(209, 208, 221);
    --neutral-colour-l3: rgb(197, 196, 212);
    --neutral-colour-l2: rgb(186, 184, 204);
    --neutral-colour-l1: rgb(174, 172, 195);
    --neutral-colour: rgb(154, 152, 181); /* 9A98B5 */
    --neutral-colour-d1: rgb(150, 149, 178);
    --neutral-colour-d2: rgb(138, 137, 169);
    --neutral-colour-d3: rgb(126, 125, 161);
    --neutral-colour-d4: rgb(114, 113, 152);
    --neutral-colour-d5: rgb(104, 103, 142);
    --neutral-colour-d6: rgb(95, 94, 130);
    --light-colour-l2: rgb(255, 255, 255);
    --light-colour-l1: rgb(245, 247, 243);
    --light-colour: rgb(230, 235, 224); /* E6EBE0 */
    --light-colour-d1: rgb(225, 231, 218);
    --light-colour-d2: rgb(215, 223, 206);
    --light-colour-d3: rgb(205, 215, 193);
    --light-colour-d4: rgb(195, 207, 180);
    --light-colour-d5: rgb(185, 199, 168);
    --light-colour-d6: rgb(175, 191, 155);
    --highlight-font: 'Aldrich', sans-serif;
    --header-font: 'Aldrich', sans-serif;
    --basic-font: 'EncodeSans-Variable', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    --general-transition-time: 0.2s;
}

html, body, .page, main {
    font-family: var(--basic-font);
    color: var(--light-colour-l2);
    background-color: var(--light-colour-l1);
    min-height:100%;
}

body {
    min-height: 100vh;
}

.postcard-container {
    margin: auto;
    max-width: 1400px;
    margin-top: 1rem;
    margin-bottom: 1rem;
}

.slim-postcard-container {
    margin: auto;
    max-width: 700px;
    margin-top: 1rem;
    margin-bottom: 1rem;
}

.card {
    outline: none;
    border: none;
    box-shadow: 0 0 0.3rem 0.2rem var(--neutral-colour-l5);
    height: 100%;
    user-select: none !important;
}

.carousel {
    overflow: hidden;
}

.carousel-inner {
    border-radius:0.375rem;
}

.dark-card {
    background-image: linear-gradient(to bottom, var(--relaxing-colour-d6), var(--relaxing-colour-d4)) !important;
    background-color: var(--relaxing-colour-d6) !important;
}

.primary-card {
    color: var(--light-colour-l2) !important;
    background-color: var(--main-colour-d2) !important;
}

.secondary-card {
    background-color: var(--neutral-colour-d4) !important;
    color: var(--light-colour-l2);
}

.danger-card {
    color: var(--light-colour-l2) !important;
    background-color: var(--danger-colour-d1) !important;
}

.light-card {
    background-color: white !important;
    color: var(--relaxing-colour-d7) !important;
}

.light-card > .card-header, .card-footer {
    background-color: white !important;
    text-align: center;
}

    .light-card > .card-footer {
        background-color: var(--neutral-colour-d4) !important;
        color: var(--light-colour-l2);
        border-radius: 0 0 0.375rem 0.375rem;
    }

    .light-card > .card-body, img {
        border-radius: 0.375rem 0.375rem 0 0;
    }

.picture-only {
    border-radius: 0.375rem;
}

.hover-card {
    transition: all ease-in-out var(--general-transition-time);
    will-change: transform;
    position: relative;
}

    .hover-card:hover,
    .hover-card:focus-within {
        transform: translateY(-3px); /* move up a few pixels */
        z-index: 1; /* sit above neighbors if overlapping */
    }

@media (prefers-reduced-motion: reduce) {
    .hover-card {
        transition: none;
    }
}

.hover-swap {
    display: grid;
    place-items: center; /* center text/icons */
    width: 100%;
}

    .hover-swap > .card-text-default,
    .hover-swap > .card-text-hover {
        grid-area: 1 / 1; /* overlap */
        transition: opacity .2s ease;
    }

    .hover-swap > .card-text-hover {
        opacity: 0;
    }

.hover-card:hover .hover-swap > .card-text-default {
    opacity: 0;
}

.hover-card:hover .hover-swap > .card-text-hover {
    opacity: 1;
}

.primary-card.hover-card:hover {
    color: var(--light-colour-l2) !important;
    background-color: var(--main-colour-d4) !important;
    box-shadow: 0 0 0.5rem 0.2rem var(--main-colour-l6);
}

.primary-card.hover-card:active {
    color: var(--light-colour-l2) !important;
    background-color: var(--main-colour-d6) !important;
    box-shadow: 0 0 0.5rem 0.2rem var(--main-colour-l2);
}

.secondary-card.hover-card:hover {
    background-color: var(--relaxing-colour-l5) !important;
    color: var(--light-colour-l2);
    box-shadow: 0 0 0.5rem 0.2rem var(--neutral-colour-l1);
}

.secondary-card.hover-card:active {
    background-color: var(--relaxing-colour-l3) !important;
    color: var(--light-colour-l2);
    box-shadow: 0 0 0.5rem 0.2rem var(--neutral-colour-l3);
}

.danger-card.hover-card:hover {
    color: var(--light-colour-l2) !important;
    background-color: var(--danger-colour-d2) !important;
    box-shadow: 0 0 0.5rem 0.2rem var(--neutral-colour-l1);
}

.danger-card.hover-card:active {
    color: var(--light-colour-l2) !important;
    background-color: var(--danger-colour-d3) !important;
    box-shadow: 0 0 0.5rem 0.2rem var(--neutral-colour-l3);
}

.light-card.hover-card:hover {
    background-color: white;
    color: var(--relaxing-colour-d5) !important;
    box-shadow: 0 0 0.5rem 0.2rem var(--neutral-colour-l3);
}

    .light-card.hover-card:hover > .card-footer {
        background-color: var(--relaxing-colour-l5) !important;
        color: var(--light-colour-l2);
    }

.dark-footer {
    background-image: linear-gradient(to bottom, var(--relaxing-colour-d6), var(--relaxing-colour-d4)) !important;
    background-color: var(--relaxing-colour-d6) !important;
}

.sidebar-scrollbar::-webkit-scrollbar {
    width: 8px;
}

.sidebar-scrollbar::-webkit-scrollbar-track {
    background: none; 
}

.sidebar-scrollbar::-webkit-scrollbar-thumb {
    background: var(--neutral-colour-d2);
    border-radius: 10px;
}

.sidebar-scrollbar::-webkit-scrollbar-thumb:hover {
    background: var(--neutral-colour-d4);
}

/* 1) Remove default appearance & set base size/rounding */
input[type="range"].form-range {
    -webkit-appearance: none; /* For Chrome/Safari */
    width: 100%;
    height: 0.6rem; /* Track thickness */
    background: transparent; /* We rely on the inline gradient instead */
    border-radius: 9999px; /* "Pill" shape */
    outline: none;
    margin: 1rem 0;
}

/* 2) Chrome/Safari track */
input[type="range"].form-range::-webkit-slider-runnable-track {
    height: 100%;
    background: transparent; /* Make track fully transparent */
    border-radius: 9999px;
    /* Optional: If you want a thin border around the track:
    border: 1px solid var(--neutral-colour-d4);
*/
}

/* 3) Chrome/Safari thumb */
input[type="range"].form-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 1.4rem;
    height: 1.4rem;
    background: var(--main-colour);
    border: 2px solid var(--main-colour-d1);
    border-radius: 50%;
    margin-top: calc((0.6rem - 1.4rem)/2); /* Centers the thumb vertically */
    cursor: pointer;
}

/* 4) Firefox track */
input[type="range"].form-range::-moz-range-track {
    height: 100%;
    background: transparent;
    border-radius: 9999px;
    /* Optional border if desired:
    border: 1px solid var(--neutral-colour-d4);
*/
}

/* 5) Firefox thumb */
input[type="range"].form-range::-moz-range-thumb {
    width: 1.4rem;
    height: 1.4rem;
    background: var(--main-colour);
    border: 2px solid var(--main-colour-d1);
    border-radius: 50%;
    cursor: pointer;
}

/* 6) IE/Edge track */
input[type="range"].form-range::-ms-track {
    width: 100%;
    height: 100%;
    background: transparent;
    border-color: transparent;
    color: transparent;
    border-radius: 9999px;
}

input[type="range"].form-range::-ms-fill-lower {
    background: transparent;
    border-radius: 9999px;
}

input[type="range"].form-range::-ms-fill-upper {
    background: transparent;
    border-radius: 9999px;
}

/* 7) IE/Edge thumb */
input[type="range"].form-range::-ms-thumb {
    width: 1.4rem;
    height: 1.4rem;
    background: var(--main-colour);
    border: 2px solid var(--main-colour-d1);
    border-radius: 50%;
    cursor: pointer;
}

/* (Optional) Hover/focus effects */
input[type="range"].form-range:focus::-webkit-slider-thumb {
    box-shadow: 0 0 0 4px var(--main-colour-l1);
}

input[type="range"].form-range:hover::-webkit-slider-thumb {
    background: var(--main-colour-l1);
}

.gf-hr {
    border:0;
    height: 3px;
    background-color: var(--relaxing-colour);
}

.cookie-footer {
    background-color: var(--relaxing-colour-d8);
    text-align: center;
    padding: 1em;
    padding-bottom: 6em;
    padding-top: 6em;
    position: fixed !important; /* Geändert von 'sticky' zu 'fixed' */
    bottom: 30%;
    left: 0;
    right: 0;
    z-index: 1000; /* Stellt sicher, dass der Banner über anderen Inhalten angezeigt wird */
}

.accordion-body {
    background-color: var(--relaxing-colour-d5) !important;
    color: white;
}

.accordion-button {
    background-color: white !important;
    outline: none !important;
    border: none !important;
    box-shadow: none !important;
}

.accordion-header {
    outline: none !important;
    border: none !important;
    box-shadow: none !important;
}

.responsive-iframe {
    width: 100%;
    flex-grow: 1;
}

.navbar-dark {
    z-index: 10;
    /*background-color: var(--relaxing-colour-d6) !important;*/
    background: none;
}

.sidebar {
    z-index: 10;
    background-image: linear-gradient(to bottom, var(--relaxing-colour-d6), var(--relaxing-colour-d4)) !important;
    background-color: var(--relaxing-colour-d6) !important;
}

h1,h2,h3 {
    font-family: var(--highlight-font);
    user-select: none;
    text-decoration: none;
}

h4, h5, h6 {
    font-family: var(--header-font);
    user-select: none;
    text-decoration: none;
}

.hero-carousell {
    background-color: var(--light-colour-l2) !important;
    user-select: none;
    color: var(--relaxing-colour-d7);
}

.hero-container {
    background-image: linear-gradient(to bottom, var(--light-colour-l2), var(--light-colour-l1)) !important;
    background-color: var(--light-colour-l1) !important;
    color: var(--relaxing-colour-d7);
}

.hero-image {
    height: 30%;
    width: 100%;
}

.hero-image {
    background-image: url('../images/bg.jpg');
    position: relative; /* This is needed for the absolute positioning of the pseudo-element */
}

    .hero-image::before {
        content: "";
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        background-color: rgba(0, 0, 0, 0.5); /* This is the semi-transparent black overlay. Adjust the 0.5 as needed */
    }

.hero-font {
    font-family: var(--highlight-font);
}

.hero-text {
    color: var(--main-colour);
}

.faded-text {
    color: var(--light-colour-d5) !important;
}

.danger-text, text-danger {
    color: var(--danger-colour) !important;
}

.text-secondary {
    color: var(--light-colour-d1) !important;
}

.text-muted {
    color: var(--light-colour-d3) !important;
}

.text-light {
    color: var(--light-colour);
}

.invalid-feedback {
    color: var(--danger-colour) !important;
}

.hero-card {
    background-color: var(--relaxing-colour-d7) !important;
    border: 5px solid var(--main-colour-l1) !important;
    cursor: pointer;
    transition: all ease-in-out var(--general-transition-time);
}
    .hero-card .card-header {
        /*color: var(--relaxing-colour-d7);*/
        background-color: var(--main-colour-l1) !important;
        text-align: center;
        border-bottom: none;
        border-radius: 0;
        transition: all ease-in-out var(--general-transition-time);
    }
    .hero-card .card-header h3 {
        padding-bottom: 0;
    }
    .hero-card .card-body {
        color: var(--main-colour-l1);
        text-align: center;
        transition: all ease-in-out var(--general-transition-time);
    }
    .hero-card .card-body .icon-container {
        font-size: 5rem;
    }

.hero-card:hover {
    border: 5px solid var(--main-colour-l5) !important;
}
.hero-card:hover .card-header {
    background-color: var(--main-colour-l5) !important;
}
.hero-card:hover .card-body {
    color: var(--main-colour-l5);
}

.text-bg-info {
    background-color: var(--main-colour-l6) !important;
    color: var(--main-colour-d6) !important;
}

.text-bg-success {
    background-color: var(--main-colour-d3) !important;
    color: var(--light-colour-l2) !important;
}

.text-bg-secondary {
    background-color: var(--neutral-colour-d6) !important;
    color: var(--light-colour) !important;
}

.text-bg-warning {
    background-color: var(--danger-colour-l6) !important;
    color: var(--danger-colour-d6) !important;
}

.text-bg-danger {
    background-color: var(--danger-colour-d1) !important;
    color: var(--light-colour-l2) !important;
}

.alert-info {
    background-color: var(--main-colour-l6);
    color: var(--main-colour-d6);
    border-color: var(--main-colour-l6);
    outline-color: var(--main-colour-l6);
}

.alert-success {
    background-color: var(--main-colour-d3);
    color: var(--light-colour-l2);
    border-color: var(--main-colour-d3);
    outline-color: var(--main-colour-d3);
}

.alert-secondary {
    background-color: var(--neutral-colour-d6);
    color: var(--light-colour);
    border-color: var(--neutral-colour-d6);
    outline-color: var(--neutral-colour-d6);
}

.alert-warning {
    background-color: var(--danger-colour-l6);
    color: var(--danger-colour-d6);
    border-color: var(--danger-colour-l6);
    outline-color: var(--danger-colour-l6);
}

.alert-danger {
    background-color: var(--danger-colour-d1);
    color: var(--light-colour-l2);
    border-color: var(--danger-colour-d1);
    outline-color: var(--danger-colour-d1);
}

.gf-card {
    background-color: var(--relaxing-colour-d7) !important;
    border: 5px solid var(--relaxing-colour-d4) !important;
    user-select: none;
}

    .gf-card::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        box-shadow: 0 0 200px 100px var(--relaxing-colour-d8);
        z-index: -1;
    }

    .gf-card .card-header {
        /*color: var(--relaxing-colour-d7);*/
        background-color: var(--relaxing-colour-d4) !important;
        text-align: center;
        border-bottom: none;
        border-radius: 0;
        color: var(--light-colour-l2);
    }
    .gf-card .card-header .selection-indicator-icon {
        opacity: 0;
        width: 0;
        margin-right: 0;
        color: var(--light-colour-l2);
        transition: all ease-in-out var(--general-transition-time);
    }
    .gf-card .card-header .form-floating .form-control {
        color: var(--relaxing-colour-d7) !important;
    }
    .gf-card .card-header h3 {
        padding-bottom: 0;
    }
    .gf-card .card-body {
        color: var(--light-colour-l1);
        text-align: center;
    }
    .gf-card .card-footer {
        border-radius: 0;
        border-top: none;
    }
    .gf-card .card-body .icon-container {
        font-size: 5rem;
    }
    .gf-card .input-group * {
        border: none;
    }
    .gf-card input:-webkit-autofill,
            input:-webkit-autofill:hover,
            input:-webkit-autofill:focus,
            input:-webkit-autofill:active {
        -webkit-box-shadow: 0 0 0 30px white inset !important;
        color: var(--relaxing-colour-d7) !important;
    }
    .gf-card .form-control:focus {
        box-shadow: 0 0 0 0.1rem var(--light-colour), 0 0 0 0.25rem var(--main-colour-l2) !important;
    }
    .gf-card .input-group-text {
        background-color: var(--main-colour-d2) !important;
        color: var(--light-colour-l2) !important;
    }
    .gf-card .form-label {
        color: var(--relaxing-colour-d7) 
    }
    .gf-card .form-switch .form-check-input {
        background-color: var(--neutral-colour);
        color: var(--light-colour-l2) !important;
    }
    .gf-card .form-check-input:active {
        color: var(--light-colour-l2) !important;
    }
        .gf-card .form-check-input:focus {
            box-shadow: 0 0 0 0.1rem var(--light-colour), 0 0 0 0.25rem var(--main-colour-l2) !important;
            color: var(--light-colour-l2) !important;
        }
    .gf-card .form-check-input:checked {
        background-color: var(--main-colour);
        border-color: var(--main-colour);
        color: var(--light-colour-l2) !important;
    }

    .gf-card .input-group * {
        border: none;
    }

    .gf-form input:-webkit-autofill,
    input:-webkit-autofill:hover,
    input:-webkit-autofill:focus,
    input:-webkit-autofill:active {
        -webkit-box-shadow: 0 0 0 30px white inset !important;
        color: var(--relaxing-colour-d7) !important;
    }

    .gf-form .form-control:focus {
        box-shadow: 0 0 0 0.1rem var(--light-colour), 0 0 0 0.25rem var(--main-colour-l2) !important;
    }

    .gf-form .input-group-text {
        background-color: var(--main-colour-d2) !important;
        color: var(--light-colour-l2) !important;
    }

    .gf-form .form-label {
        color: var(--relaxing-colour-d7)
    }

    .gf-form .form-switch .form-check-input {
        background-color: var(--neutral-colour);
        color: var(--light-colour-l2) !important;
    }

    .gf-form .form-check-input:active {
        color: var(--light-colour-l2) !important;
    }

    .gf-form .form-check-input:focus {
        box-shadow: 0 0 0 0.1rem var(--light-colour), 0 0 0 0.25rem var(--main-colour-l2) !important;
        color: var(--light-colour-l2) !important;
    }

    .gf-form .form-check-input:checked {
        background-color: var(--main-colour);
        border-color: var(--main-colour);
        color: var(--light-colour-l2) !important;
    }

.link-info {
    color: var(--neutral-colour-d5) !important;
    user-select: none;
    border: none;
}

    .link-info:hover {
        color: var(--neutral-colour-d6) !important;
    }

    .link-info:focus {
        color: var(--neutral-colour-d4) !important;
    }

    .link-info:visited {
        color: var(--neutral-colour-d4) !important;
    }

.gf-card-hover {
    border: 5px solid var(--neutral-colour-l2) !important;
    transition: all ease-in-out var(--general-transition-time);
    user-select: none;
}
    .gf-card-hover .card-header {
        background-color: var(--neutral-colour-l2) !important;
        transition: all ease-in-out var(--general-transition-time);
        color: var(--relaxing-colour-d7);
    }
    .gf-card-hover .card-body {
        color: var(--relaxing-colour-d7);
    }
    .gf-card-hover .card-footer {
        transition: all ease-in-out var(--general-transition-time);
    }

    .gf-card-hover .card-header .selection-indicator-icon {
        opacity: 0;
        width: 0;
        margin-right: 0;
        color: var(--light-colour-l2);
        transition: all ease-in-out var(--general-transition-time);
    }
    .gf-card-hover:hover .card-header .selection-indicator-icon {
        opacity: 1;
        width: 1rem;
        margin-right: 0.5rem;
    }

    .gf-card-hover:hover {
        border: 5px solid var(--relaxing-colour-l5) !important;
    }

        .gf-card-hover:hover .card-header {
            background-color: var(--relaxing-colour-l5) !important;
            color: var(--light-colour-l2);
        }

        .gf-card-hover:hover .card-footer {
            background-color: var(--relaxing-colour-l5) !important;
            color: var(--light-colour-l1);
        }

    .gf-card-hover .card-footer .link-info {
        transition: all ease-in-out var(--general-transition-time);
    }
    .gf-card-hover .card-footer .link-primary {
        transition: all ease-in-out var(--general-transition-time);
    }

    .gf-card-hover:hover .card-footer .link-info {
        color: var(--light-colour-l1) !important;
    }
    .gf-card-hover:hover .card-footer .link-primary {
        color: var(--light-colour-l1) !important;
    }
    .gf-card-hover:hover .hero-text {
        color: var(--light-colour-l1) !important;
    }

    .gf-card-danger {
        border-color: var(--danger-colour) !important;
    }
.gf-card-danger .card-header {
    background-color: var(--danger-colour) !important;
}

.gf-card-selected {
    border: 5px solid var(--main-colour) !important;
}
    .gf-card-selected .card-header {
        background-color: var(--main-colour) !important;
        color: var(--light-colour-l2);
    }

        .gf-card-selected .card-header .selection-indicator-icon {
            opacity: 1;
            width: 1rem;
            margin-right: 0.5rem;
        }

    .gf-card-selected .hero-text {
        color: var(--light-colour-l1) !important;
    }

    .gf-card-selected .card-footer {
        border-radius: 0;
        background-color: var(--main-colour) !important;
        color: var(--light-colour-l1) !important;
    }
    .gf-card-selected:hover {
        border: 5px solid var(--main-colour-d1) !important;
    }
    .gf-card-selected:hover .card-header {
        background-color: var(--main-colour-d1) !important;
    }
    .gf-card-selected:hover .card-footer {
        background-color: var(--main-colour-d1) !important;
    }
    .gf-card-selected:hover .hero-text {
        color: var(--light-colour-l1) !important;
    }

.disabled-card {
    border: 5px solid var(--neutral-colour-d5) !important;
    user-select: none;
}

    .disabled-card .card-header {
        background-color: var(--neutral-colour-d5) !important;
        color: var(--neutral-colour-d1);
    }

    .disabled-card .card-body {
        color: var(--neutral-colour-d1);
    }

.invisibleCube {
    width: 100%;
    height: 100%;
    min-height: 20px;
}

.selectionCube {
    width: 100%;
    height: 100%;
    min-height: 20px;
    border: 3px solid var(--neutral-colour-l2);
    border-radius: 5px;
}

.disabled-card .selectionCube {
    border: 3px solid var(--neutral-colour-d1);
}

.gf-card-selected .selectionCube {
    background-color: var(--main-colour-d1);
    border: 3px solid var(--main-colour-d1);
}

.link-primary {
    color: var(--main-colour) !important;
    user-select: none;
    border: none;
}
.link-primary:hover {
    color: var(--main-colour-d3) !important;
}
    .link-primary:focus {
        color: var(--main-colour-d1) !important;
    }
    .link-primary:visited {
        color: var(--main-colour-d1) !important;
    }

.link-secondary {
    color: var(--light-colour-l1) !important;
    user-select: none;
    border: none;
}

    .link-secondary:hover {
        color: var(--light-colour) !important;
    }

    .link-secondary:focus {
        color: var(--light-colour-d1) !important;
    }

    .link-secondary:visited {
        color: var(--light-colour-d1) !important;
    }

.link-danger {
    color: var(--danger-colour) !important;
    user-select: none;
    border: none;
}

    .link-danger:hover {
        color: var(--danger-colour-d3) !important;
    }

    .link-danger:focus {
        color: var(--danger-colour-d1) !important;
    }

    .link-danger:visited {
        color: var(--danger-colour-d1) !important;
    }

.gf-card .card-header .nav-link {
    color: var(--light-colour-l2);
    user-select: none;
}

.gf-card .card-header .nav-item .link-secondary {
    color: var(--light-colour-l2) !important;
    user-select: none;
}

    .gf-card .card-header .nav-item .link-secondary:hover {
        color: var(--light-colour-l2) !important;
        background-color: var(--neutral-colour) !important;
    }

    .gf-card .card-header .nav-item .link-secondary:active {
        color: var(--light-colour-l2) !important;
    }

.gf-card .card-header .nav-item .active {
    color: var(--light-colour-l2) !important;
    background-color: var(--relaxing-colour-d7);
}

.gf-card .card-header .nav-item .nav-link {
    border: none;
    transition: all ease-in-out var(--general-transition-time);
}
.gf-card .card-header .nav-item:hover .link-primary {
    background-color: var(--main-colour);
    color: var(--light-colour-l2) !important;
}
.gf-card .card-header .nav-item:hover .link-danger {
    background-color: var(--danger-colour);
    color: var(--light-colour-l2) !important;
}


.gf-card .gf-card-body-white {
    background-color: var(--light-colour-l2) !important;
    color: var(--relaxing-colour-d7);
}

.btn-primary {
    color: var(--light-colour-l2) !important;
    background-color: var(--main-colour-d2) !important;
    border-color: var(--main-colour-d2) !important;
}
    .btn-primary:hover {
        color: var(--light-colour-l2) !important;
        background-color: var(--main-colour-d4) !important;
        border-color: var(--main-colour-d4) !important;
    }
    .btn-primary:active {
        color: var(--light-colour-l2) !important;
        background-color: var(--main-colour-d6) !important;
        border-color: var(--main-colour-d6) !important;
    }
    .btn-primary:focus {
        box-shadow: 0 0 0 0.1rem var(--light-colour), 0 0 0 0.25rem var(--main-colour-l2) !important;
    }

.btn-outline-primary {
    color: var(--main-colour) !important;
    background-color: var(--relaxing-colour-d7) !important;
    border: var(--bs-border-width) var(--main-colour-d4) solid !important;
}

    .btn-outline-primary:hover {
        color: var(--main-colour-l6) !important;
        background-color: var(--main-colour-d5) !important;
        border-color: var(--main-colour-d5) !important;
    }

    .btn-outline-primary:active {
        color: var(--main-colour-l6) !important;
        background-color: var(--main-colour-d6) !important;
        border-color: var(--main-colour-d6) !important;
    }

    .btn-outline-primary:focus {
        box-shadow: 0 0 0 0.1rem var(--light-colour), 0 0 0 0.25rem var(--main-colour-d2) !important;
    }

.btn-secondary {
    color: var(--light-colour-l2) !important;
    background-color: var(--neutral-colour-d4) !important;
    border: var(--bs-border-width) var(--neutral-colour-d4) solid !important;
}
    .btn-secondary:hover {
        color: var(--light-colour-l2) !important;
        background-color: var(--neutral-colour-d5) !important;
        border-color: var(--neutral-colour-d5) !important;
    }
    .btn-secondary:active {
        color: var(--light-colour-l2) !important;
        background-color: var(--neutral-colour-d6) !important;
        border-color: var(--neutral-colour-d6) !important;
    }
    .btn-secondary:focus {
        box-shadow: 0 0 0 0.1rem var(--light-colour), 0 0 0 0.25rem var(--neutral-colour-d2)!important;
    }

.btn-outline-secondary {
    color: var(--light-colour) !important;
    background-color: var(--relaxing-colour-d7) !important;
    border: var(--bs-border-width) var(--neutral-colour-d4) solid !important;
}
    .btn-outline-secondary:hover {
        color: var(--light-colour-l2) !important;
        background-color: var(--neutral-colour-d5) !important;
        border-color: var(--neutral-colour-d5) !important;
    }
    .btn-outline-secondary:active {
        color: var(--light-colour-l2) !important;
        background-color: var(--neutral-colour-d6) !important;
        border-color: var(--neutral-colour-d6) !important;
    }
    .btn-outline-secondary:focus {
        box-shadow: 0 0 0 0.1rem var(--light-colour), 0 0 0 0.25rem var(--neutral-colour-d2) !important;
    }

.btn-warning {
    color: var(--relaxing-colour-d7) !important;
    background-color: var(--danger-colour-l3) !important;
    border: var(--bs-border-width) var(--danger-colour-l3) solid !important;
}

    .btn-warning:hover {
        color: var(--relaxing-colour-d7) !important;
        background-color: var(--danger-colour-l4) !important;
        border-color: var(--danger-colour-l4) !important;
    }

    .btn-warning:active {
        color: var(--relaxing-colour-d7) !important;
        background-color: var(--danger-colour-l2) !important;
        border-color: var(--danger-colour-l2) !important;
    }

    .btn-warning:focus {
        box-shadow: 0 0 0 0.1rem var(--light-colour), 0 0 0 0.25rem var(--danger-colour) !important;
    }

.btn-danger {
    color: var(--light-colour-l2) !important;
    background-color: var(--danger-colour-d1) !important;
    border: var(--bs-border-width) var(--danger-colour-d1) solid !important;
}

    .btn-danger:hover {
        color: var(--light-colour-l2) !important;
        background-color: var(--danger-colour-d2) !important;
        border: var(--bs-border-width) var(--danger-colour-d2) solid !important;
    }

    .btn-danger:active {
        color: var(--light-colour-l2) !important;
        background-color: var(--danger-colour-d3) !important;
        border: var(--bs-border-width) var(--danger-colour-d3) solid !important;
    }

    .btn-danger:focus {
        box-shadow: 0 0 0 0.1rem var(--light-colour), 0 0 0 0.25rem var(--danger-colour) !important;
    }

@media (max-width: 699.98px) {
    /*main, article, .px-4 {
        padding: 0 !important;
    }

    .col {
        padding: 0 !important;
    }

    .col-f {
        padding: 5px !important;
    }*/
}

@keyframes fadeIn {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

.fade-in {
    animation: fadeIn 0.5s;
}

/*.big-radius {
    border-radius: 30px;
}

.big-radius .card-header {
    border-radius: 30px 30px 0 0;
}

.big-radius .card-footer {
    border-radius: 0 0 30px 30px;
}*/

h1:focus {
    outline: none;
}

a, .btn-link {
    color: #0071c1;
}

.btn-primary {
    color: #fff;
    background-color: #1b6ec2;
    border-color: #1861ac;
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid var(--danger-colour);
}

.validation-message {
    color: var(--danger-colour);
}

#blazor-error-ui {
    background: var(--danger-colour);
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

/*.top-row {
    height: 5rem !important;
    background-color: #1d1d1d !important;
}*/

main {
    /*background-color: #ededed !important;*/
}

.navbar-brand {
    font-size: xx-large !important;
}

.nav-link {
    font-size: large;
}

.round-card {
    border-radius: 30px;
}

.overlay {
    position: fixed; /* Fix position on the screen */
    top: 0; /* Position at the top */
    left: 0; /* Position on the left */
    width: 100%; /* Full width */
    height: 100%; /* Full height */
    background-color: rgba(0,0,0,0.5); /* Black background with opacity */
    z-index: 100; /* Ensure it sits on top of everything else */
    display: flex; /* To center the content horizontally */
    justify-content: center; /* Center content horizontally */
    align-items: center; /* Center content vertically */
}

.overlay-content {
    z-index: 101;
}

.cursor-pointer {
    cursor: pointer;
}

.hover-text {
    color: initial;
    transition: all ease-in-out 150ms;
}

.hover-text:hover {
    color: #0071c1;
}

.config-item {
    /*background-color: gray;*/
    cursor: pointer;
    border: 3px solid var(--relaxing-colour-l3);
    border-radius: 8px;
    transition: border ease-in-out var(--general-transition-time), box-shadow ease-in-out var(--general-transition-time);
}
    .config-item:hover {
        border: 3px solid var(--main-colour);
        box-shadow: 0 0 10px 2px var(--main-colour);
    }

.config-item-base {
    border: 3px solid var(--relaxing-colour-l3);
    border-radius: 10px;
}

.segment-item-selected {
    border: 3px solid var(--neutral-colour-d1);
    box-shadow: 0 0 5px 2px var(--neutral-colour-d1);
}

.config-item-selected {
    border: 3px solid var(--neutral-colour-l5);
    box-shadow: 0 0 10px 2px var(--neutral-colour-l5);
}

.outside-parent {
    border: 3px solid var(--danger-colour) !important;
    box-shadow: 0 0 10px 2px var(--danger-colour-l2) !important;
}

.grid-vertical {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: repeat(18, 1fr);
    /*gap: 1px; */
    width: 80px; /* adjust as needed */
    flex-grow: 1; /* new */
}

.grid-vertical-item {
    border: 2px solid var(--relaxing-colour) !important;
    border-bottom-width: 1px;
    border-top-width: 1px;
    position: relative;
    cursor: pointer;
}
    .grid-vertical-item:first-child {
        border-top-left-radius: 8px;
        border-top-right-radius: 8px;
    }
    .grid-vertical-item:last-child {
        border-bottom-left-radius: 8px;
        border-bottom-right-radius: 8px;
    }

.grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    grid-template-rows: repeat(5, 1fr);
    gap: 3px; /* optional: add some gap between grid items */
}

.grid-item {
    border: 3px solid var(--relaxing-colour);
    position: relative;
    cursor: pointer;
    border-radius: 8px;
}
    .grid-item::before {
        content: "";
        display: block;
        padding-top: 100%; /* sets the aspect ratio to 1:1, making the grid item square */
    }

.grid-item-danger {
    background-color: var(--danger-colour);
}

.grid-item-selected {
    background-color: var(--neutral-colour-d3) !important;
    border-color: var(--neutral-colour);
}

.grid-item-hovered {
    border-color: var(--main-colour);
    background-color: var(--main-colour-d2);
}

.grid-vertical-item-hovered {
    background-color: var(--main-colour) !important;
    /*border-color: #78cfcf;*/
}

.colour-ball {
    width: 30px;
    height: 30px;
    border: 3px solid var(--neutral-colour-l5);
    border-radius: 100%;
    margin-right: 5px;
    margin-bottom: 5px;
    transition: all ease-in-out var(--general-transition-time);
    user-select: none;
}

.colour-ball-big {
    width: 40px;
    height: 40px;
}

.colour-ball:hover {
    border: 3px solid var(--main-colour);
    cursor:pointer;
    box-shadow: 0 0 10px 2px var(--main-colour);
}

.colour-ball-selected {
    border: 3px solid var(--relaxing-colour-l3);
    box-shadow: 0 0 10px 2px var(--relaxing-colour-l3);
    cursor: default;
}

.colour-ball-no-hover {
    border: 3px solid var(--neutral-colour-l5);
    cursor: default;
}

    .colour-ball-no-hover:hover {
        border: 3px solid var(--neutral-colour-l5);
        cursor: default;
        box-shadow: none !important;
    }

.colour-ball-small {
    height: 22px;
    width: 22px;
}

.uniform-w-btn {
    width: 44px;
    text-align: center;
}

.uniform-w-text {
    width: 44px;
    text-align: center;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-content: center;
    align-items: center;
    justify-items: center;
}

.tinted-image-container {
    display: inline-block;
    position: relative;
}

.tinted-image {
    width: 100%;
    height: 100%;
}
.tinted-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    /*background-color: #1861ac;*/
    mix-blend-mode: soft-light; /* screen works with blue, overlay works best overall, soft-light works even better */
}

.favourite-icon {
    /*transition: all ease-in-out var(--general-transition-time);*/
}
    .favourite-icon:hover {
        color: var(--main-colour);
    }

.filled-favourite-icon {
    color: var(--main-colour);
    --fa-secondary-opacity: 1;
}

.card-hover {
    border: none !important;
    box-shadow: none;
    outline: 2px solid #c1c1c1;
    transition: all ease-in-out 150ms;
}

    .card-hover:hover {
        border: none;
        box-shadow: 0px 0px 15px -10px rgba(0,0,0,0.75);
        outline-color: black;
    }

    .card-hover .card-hover-icon {
        color: initial;
        transition: all ease-in-out 150ms;
    }

    .card-hover:hover .card-hover-icon {
        color: black !important;
    }

    .card-hover .card-hidden-icon {
        opacity: 0;
        font-size: 0;
        margin-right: 0;
        transition: all ease-in-out 150ms;
    }

    .card-hover:hover .card-hidden-icon {
        opacity: 1;
        margin-right: 0.2em;
        font-size: inherit;
    }

.card-hover-content {
    opacity: 0;
    transition: all ease-in-out 150ms;
}

.card-hover:hover .card-hover-content {
    opacity: 1;
}

.bg-hover-success {
    background-color: initial;
    transition: all ease-in-out 150ms;
}

.card-hover:hover .bg-hover-success {
    background-color: lightgreen !important;
}

.card-ghost {
    border: none;
    outline-style: dashed;
    outline-color: #c1c1c1;
    background: none;
    transition: all ease-in-out 150ms;
}

    .card-ghost:hover {
        border: none;
        outline-style: solid;
        background: inherit;
    }

.card-selected {
    border: none;
    outline: 2px solid #5b5b5b;
}

.scrolling-text-wrapper {
    height: 1.2em; /* Adjust to match your text size */
    overflow: hidden;
}

.scrolling-text {
    position: relative;
    height: 1.2em; /* This should be the same as the height of .scrolling-text-wrapper */
}

.text {
    position: absolute;
    width: 100%;
    height: 100%;
    margin: 0;
    line-height: 1.2em; /* This should be the same as the height of .scrolling-text */
    /*text-align: left;*/
    transform: translateY(100%);
}

    .text.active {
        animation: scroll-in 500ms forwards ease-in-out;
    }

    .text.deactive {
        animation: scroll-out 500ms forwards ease-in-out;
    }

.header-text {
    position: absolute;
    width: 100%;
    height: 100%;
    margin: 0;
    line-height: 1.2em; /* This should be the same as the height of .scrolling-text */
    /*text-align: left;*/
    transform: translateY(100%);
}

    .header-text.active {
        animation: scroll-in 500ms forwards ease-in-out;
    }

    .header-text.deactive {
        animation: scroll-out 500ms forwards ease-in-out;
    }

.header-text-hidden {
    opacity: 0;
}

@keyframes scroll-in {
    0% {
        transform: translateY(100%);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes scroll-out {
    0% {
        transform: translateY(0);
    }

    100% {
        transform: translateY(-100%);
    }
}

.char {
    opacity: 1;
    transition: opacity 0.5s;
}

    .char.fade-out {
        opacity: 0;
    }

.index-background {
    background-image: url('../images/bg.jpg');
    position: relative; /* This is needed for the absolute positioning of the pseudo-element */
}

    .index-background::before {
        content: "";
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        background-color: rgba(0, 0, 0, 0.5); /* This is the semi-transparent black overlay. Adjust the 0.5 as needed */
    }

.minimized {
    display: none;
}

@keyframes metal-sheen {
    to {
        transform: translateX(160%) rotate(14deg);
    }
}

/* tone tweaks for each metal (keeps your inline --sw color) */
.swatch.metal.gold {
    box-shadow: inset 0 0 0 2px rgba(96,64,0,.12), 0 0 0 1px rgba(255,240,180,.15);
}

.swatch.metal.silver {
    box-shadow: inset 0 0 0 2px rgba(40,40,40,.12), 0 0 0 1px rgba(240,240,255,.15);
}

.swatch.metal.bronze {
    box-shadow: inset 0 0 0 2px rgba(60,30,0,.12), 0 0 0 1px rgba(255,220,190,.12);
}

/* Accessibility: respect reduced motion */
@media (prefers-reduced-motion: reduce) {
    .swatch.metal::before {
        animation: none;
        opacity: .6;
        transform: none;
    }
}

:root {
    --base-size: 35px;
    --cube-size: var(--base-size);
    --face-size: calc(var(--base-size) / 3);
    --front-translate-x: calc(var(--base-size) / 2.3076923);
    --front-translate-y: calc(var(--base-size) / 1.744186);
    --top-translate-x: calc(var(--base-size) / 1.5 * -1);
    --top-translate-y: calc(var(--base-size) / 5 * -1);
    --side-translate-x: calc(var(--base-size) / 4.4117647);
    --side-translate-y: calc(var(--base-size) / 2.29 * -1);
    --base-translate-x: calc(var(--base-size) / 3.59);
    --base-translate-y: calc(var(--base-size) / 3.09);
    --base-y-adjust: calc(var(--base-size) / 6.09);
}

.cube-container {
    /*position: relative;*/
    padding-left: calc(var(--base-translate-x) * 4.8);
    padding-top: calc(var(--base-translate-x) * 2.5);
    /*background-color: white;*/
    width: calc(var(--base-translate-x) * 12);
    height: calc(var(--base-translate-x) * 12);
}

.logo-background {
    background-color: var(--relaxing-colour-d4) !important;
    border-radius: 100%;
}

.cube {
    width: var(--cube-size);
    height: var(--cube-size);
    overflow: hidden;
    position: absolute;
}

.face {
    transform-origin: 0 0;
    position: absolute;
    width: var(--face-size);
    height: var(--face-size);
    text-decoration: none;
    user-select: none;
}

.front {
    background: blue;
    -ms-transform: rotate(-30deg) skewX(-30deg) translate(var(--front-translate-x), var(--front-translate-y)) scaleY(0.864);
    -webkit-transform: rotate(-30deg) skewX(-30deg) translate(var(--front-translate-x), var(--front-translate-y)) scaleY(0.864);
    transform: rotate(-30deg) skewX(-30deg) translate(var(--front-translate-x), var(--front-translate-y)) scaleY(0.864);
    transition: all 0.3s ease-in-out;
}

.top {
    background: red;
    -ms-transform: rotate(210deg) skew(-30deg) translate(var(--top-translate-x), var(--top-translate-y)) scaleY(0.864);
    -webkit-transform: rotate(210deg) skew(-30deg) translate(var(--top-translate-x), var(--top-translate-y)) scaleY(0.864);
    transform: rotate(210deg) skew(-30deg) translate(var(--top-translate-x), var(--top-translate-y)) scaleY(0.864);
    transition: all 0.3s ease-in-out;
}

.side {
    background: green;
    -ms-transform: rotate(90deg) skewX(-30deg) scaleY(0.864) translate(var(--side-translate-x), var(--side-translate-y));
    -webkit-transform: rotate(90deg) skewX(-30deg) scaleY(0.864) translate(var(--side-translate-x), var(--side-translate-y));
    transform: rotate(90deg) skewX(-30deg) scaleY(0.864) translate(var(--side-translate-x), var(--side-translate-y));
    transition: all 0.3s ease-in-out;
}

.logo-g {
}

.logo-f {
}

.logo-loading {

}
    .logo-loading .logo-g-container {
        animation: bounce 1s ease-in-out 0.3s infinite;
    }
    .logo-loading .logo-f-container {
        animation: bounce 1s ease-in-out 0.1s infinite;
    }

@keyframes bounce {
    0% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-10px);
    }

    100% {
        transform: translateY(0);
    }
}

.logo-g .front {
    background-color: var(--light-colour-l1)
}
.logo-g .top {
    background-color: var(--light-colour-d3)
}
.logo-g .side {
    background-color: var(--light-colour-d6)
}

.logo-f .front {
    background-color: var(--main-colour)
}

.logo-f .top {
    background-color: var(--main-colour-d3)
}

.logo-f .side {
    background-color: var(--main-colour-d6)
}

.logo-simple-hover {
    
}
    .logo-simple-hover:hover .logo-g .front {
        background-color: var(--light-colour-l2)
    }

    .logo-simple-hover:hover .logo-g .top {
        background-color: var(--light-colour-d1)
    }

    .logo-simple-hover:hover .logo-g .side {
        background-color: var(--light-colour-d3)
    }

    .logo-simple-hover:hover .logo-f .front {
        background-color: var(--main-colour-l2)
    }

    .logo-simple-hover:hover .logo-f .top {
        background-color: var(--main-colour-d1)
    }

    .logo-simple-hover:hover .logo-f .side {
        background-color: var(--main-colour-d4)
    }

.logo-f-1 {
    transform: translate(calc(var(--base-translate-x) * 4), calc(var(--base-y-adjust) * 4 * -1));
    z-index: 13
}

.logo-f-2 {
    transform: translate(calc(var(--base-translate-x) * 3), calc(var(--base-y-adjust) * 3 * -1));
    z-index: 14
}

.logo-f-3 {
    transform: translate(calc(var(--base-translate-x) * 2), calc(var(--base-y-adjust) * 2 * -1));
    z-index: 15
}

.logo-f-4 {
    transform: translate(calc(var(--base-translate-x) * 3), calc((var(--base-y-adjust) * 1 * -3) + (var(--base-translate-y) * 2)));
    z-index: 11
}

.logo-f-5 {
    transform: translate(calc(var(--base-translate-x) * 2), calc((var(--base-y-adjust) * 1 * -2) + (var(--base-translate-y) * 2)));
    z-index: 12
}

.logo-f-6 {
    transform: translate(calc(var(--base-translate-x) * 1), calc((var(--base-y-adjust) * 1 * -1) + (var(--base-translate-y) * 4)));
    z-index: 16
}

.logo-f-7 {
    transform: translate(calc(var(--base-translate-x) * 1), calc((var(--base-y-adjust) * 1 * -1) + (var(--base-translate-y) * 3)));
    z-index: 17
}

.logo-f-8 {
    transform: translate(calc(var(--base-translate-x) * 1), calc((var(--base-y-adjust) * 1 * -1) + (var(--base-translate-y) * 2)));
    z-index: 18
}

.logo-f-9 {
    transform: translate(calc(var(--base-translate-x) * 1), calc((var(--base-y-adjust) * 1 * -1) + (var(--base-translate-y) * 1)));
    z-index: 19
}

.logo-f-10 {
    transform: translate(calc(var(--base-translate-x) * 1), calc(var(--base-y-adjust) * 1 * -1));
    z-index: 20
}

.logo-g-1 {
    transform: translate(calc(var(--base-translate-x) * 4 * -1), calc((var(--base-y-adjust) * 4 * -1) + (var(--base-translate-y) * 4)));
    z-index: 31
}

.logo-g-2 {
    transform: translate(calc(var(--base-translate-x) * 4 * -1), calc((var(--base-y-adjust) * 4 * -1) + (var(--base-translate-y) * 3)));
    z-index: 32
}

.logo-g-3 {
    transform: translate(calc(var(--base-translate-x) * 4 * -1), calc((var(--base-y-adjust) * 4 * -1) + (var(--base-translate-y) * 2)));
    z-index: 33
}

.logo-g-4 {
    transform: translate(calc(var(--base-translate-x) * 4 * -1), calc((var(--base-y-adjust) * 4 * -1) + (var(--base-translate-y) * 1)));
    z-index: 34
}

.logo-g-5 {
    transform: translate(calc(var(--base-translate-x) * 4 * -1), calc(var(--base-y-adjust) * 4 * -1));
    z-index: 35
}

.logo-g-6 {
    transform: translate(calc(var(--base-translate-x) * 3 * -1), calc(var(--base-y-adjust) * 3 * -1));
    z-index: 36
}

.logo-g-7 {
    transform: translate(calc(var(--base-translate-x) * 2 * -1), calc(var(--base-y-adjust) * 2 * -1));
    z-index: 37
}

.logo-g-8 {
    transform: translate(calc(var(--base-translate-x) * 1 * -1), calc(var(--base-y-adjust) * 1 * -1));
    z-index: 38
}

.logo-g-9 {
    transform: translate(calc(var(--base-translate-x) * 0), calc(var(--base-y-adjust) * 0 * -1));
    z-index: 39
}

.logo-g-10 {
    transform: translate(calc(var(--base-translate-x) * 3 * -1), calc((var(--base-y-adjust) * 3 * -1) + (var(--base-translate-y) * 4)));
    z-index: 40
}

.logo-g-11 {
    transform: translate(calc(var(--base-translate-x) * 2 * -1), calc((var(--base-y-adjust) * 2 * -1) + (var(--base-translate-y) * 4)));
    z-index: 41
}

.logo-g-12 {
    transform: translate(calc(var(--base-translate-x) * 1 * -1), calc((var(--base-y-adjust) * 1 * -1) + (var(--base-translate-y) * 4)));
    z-index: 42
}

.logo-g-13 {
    transform: translate(calc(var(--base-translate-x) * 0 * -1), calc((var(--base-y-adjust) * 0 * -1) + (var(--base-translate-y) * 4)));
    z-index: 43
}

.logo-g-14 {
    transform: translate(calc(var(--base-translate-x) * 0 * -1), calc((var(--base-y-adjust) * 0 * -1) + (var(--base-translate-y) * 3)));
    z-index: 44
}

.logo-g-15 {
    transform: translate(calc(var(--base-translate-x) * 1 * -1), calc((var(--base-y-adjust) * 1 * -1) + (var(--base-translate-y) * 2)));
    z-index: 45
}

.logo-g-16 {
    transform: translate(calc(var(--base-translate-x) * 0 * -1), calc((var(--base-y-adjust) * 0 * -1) + (var(--base-translate-y) * 2)));
    z-index: 46
}