@keyframes borderAnimation {
    0% {
        border-color: #ff8f00;
    }
    25% {
        border-color: #ffffff;
    }
    50% {
        border-color: #ff8f00;
    }
    75% {
        border-color: #ffffff;
    }
    100% {
        border-color: #ff8f00;
    }
}
@keyframes fadein {
    from {
        opacity: 0;
        transform: scale(0.9);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}
@keyframes rotateCcw {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(-360deg);
    }
}
@keyframes rotateCw {
    from {
        transform: rotate(0deg);
        margin-left: 10%;
    }
    to {
        transform: rotate(360deg);
        margin-left: auto;
        margin-right: auto;
    }
}
@keyframes rotateOneStep {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(75deg);
    }
}
#vue-app {
    padding: 50px 0;
}
.pentagon-title {
    text-align: center;
    font-weight: 300;
}
.pentagon-subtitle {
    text-align: center;
    max-width: 900px;
    margin: auto auto 100px;
}
.rotate-ccw {
    animation: rotateCcw 0.3s linear;
}
.rotate-cw {
    animation: rotateCw 0.3s linear;
}
.rotate-slow {
    animation: rotateOneStep 3s linear
}
#str-pentagon * {
    font-family: "Roboto", sans-serif;
}
#str-pentagon #pentagon-img {
    max-width: 600px;
    z-index: 999999;
}
#str-pentagon #animate-frame {
    animation: fadein 700ms linear 0.8s infinite;
    position: absolute;
    left: 212px;
    top: 212px;
    opacity: 0.3;
    border: 5px solid #ffffff;
    width: 175px;
    border-radius: 50%;
    cursor: pointer;
}
#str-pentagon #pentagon-3cs {
    position: absolute;
    left: 260px;
    top: 259px;
    background: #ffffff;
    width: 80px;
    height: 80px;
    border-radius:100%;
    display: flex;
    text-align: center;
    cursor: pointer;
    overflow: hidden;
}
#str-pentagon #pentagon-3cs span {
    font-size: 30px;
    position: relative;
    top: 18px;
    left: 8px;
    font-weight: 800;
    color: #0a0a0a
}
#str-pentagon .controls {
    position: relative;
    width: fit-content;
    margin: auto;
    overflow: hidden;
    transition: all 700ms;
}
#str-pentagon .controls .rotation {
    overflow: hidden;
}

#str-pentagon .mappings > div {
    position: absolute;
    width: 97px !important;
    height: 97px !important;
    border-radius: 50%;
    cursor: pointer;
    opacity: 0.9;
    border: 6px solid #fff;
    overflow: hidden;
}
#str-pentagon .mappings.highlighted > div,
#str-pentagon .mappings > div:hover{
    border: 6px solid #ff8f00;
    animation: borderAnimation 2s infinite;
}


/* Animations */
#str-pentagon .mappings > div::before {
    content: '';
    position: absolute;
    top: -5px;
    left: -5px;
    right: -5px;
    bottom: -5px;
    background: linear-gradient(45deg, rgb(255 105 0 / 20%), rgba(255,105,0,1), rgb(255 105 0 / 0%), #00ffff);
    z-index: -1;
    filter: blur(20px);
    opacity: 1;
    animation: glow 2s infinite alternate;
}
@keyframes glow {
    from {
        opacity: 0.3;
    }
    to {
        opacity: 1;
    }
}




/* Floaters */
#str-pentagon * {
    overflow-x: hidden;
}
#str-pentagon .floaters > div {
    background: url(../img/vector.png) no-repeat;
    background-size: cover;
    width:385px;
    height: 103px;
    position: absolute;
    display: flex;
    align-items: center;
    z-index: -1;
}
#str-pentagon .floaters > .float-4,
#str-pentagon .floaters > .float-5{
    background: url(../img/vector-reversed.png) no-repeat;
}
#str-pentagon .floaters > div span {
    font-size: 20px;
    margin-left: 80px;
    color: #fff;
}
#str-pentagon .floaters .float-4 span,
#str-pentagon .floaters .float-5 span {
    margin-left: 40px;
}
#str-pentagon .definition {
    height: fit-content;
    padding: 0;
    max-width: 500px !important;
}
#str-pentagon .definition span {
    width: 100% !important;
    display: block;
}
#str-pentagon .definition .def-title {
    font-family: Roboto, sans-serif;
    font-weight: 300;
    color: #fff;
    margin: 0;
    font-size: 30px;
    margin-bottom: 20px;
}
#str-pentagon .definition .def-description,
#str-pentagon .definition .def-description * {
    text-align: justify;
    color: #fff;
    width: 100%;
    word-break: break-all;
    overflow-wrap: break-word;
    word-wrap: break-word;
    hyphens: auto;
    overflow-wrap: break-word;
}
#str-pentagon .definition [class^="btn-"]{
    padding: 15px 25px;
    background: orangered;
    color: #ffffff;
    border: none;
    width: 180px;
    margin-top: 50px;
    border-radius: 5px;
    border-bottom: 5px solid #cb3e0a;
    cursor: pointer;
    opacity: 0.9;
    font-size: 15px;
    display: inline-block;
    text-align: center;
    text-decoration: none;
}
#str-pentagon .definition [class^="btn-"]:hover {
    opacity: 1;
}
#str-pentagon .definition .btn-read {
    background: #ffffff;
    color: #000;
    border-color: #d1d1d1;
}
#str-pentagon .pentagon-wrapper.active .definition,
#str-pentagon .pentagon-wrapper.active .line-pointer{
    position: absolute;
}
#str-pentagon .pentagon-wrapper.active .definition {
    max-width: 700px;
}

/* This controls where the pentagon goes */
#str-pentagon .pentagon-wrapper.active .controls {
    margin-left: 10%;
    transition: margin-left 0.5s ease;
}

#str-pentagon .pentagon-wrapper.active .definition .buttons {
    display: flex;
    justify-content: space-evenly;
    margin-top: 20px;
}
#str-pentagon .pentagon-wrapper.active .definition .buttons a:first-child {
    margin-right: 10px;
    width: 50%;
}
#str-pentagon .pentagon-wrapper.active .definition .buttons a:last-child {
    margin-right: 10px;
    width: 50%;
}

@media(max-width: 1366px) {
    #str-pentagon .pentagon-wrapper.active .controls {
        zoom: 0.7 !important;
    }
    #str-pentagon .pentagon-wrapper.active .line-pointer{
        width: 200px;
    }
    #str-pentagon .pentagon-wrapper.active .definition {
        left: 620px !important;
        top: 360px !important;
    }
}
@media(max-width: 1280px) {
    #str-pentagon .pentagon-wrapper .controls {
        zoom: 0.6 !important;
    }
    #str-pentagon .pentagon-wrapper.active .line-pointer{
        zoom: 0.9 !important;
        left: 150px;
        margin-top: 25px !important;
    }
    #str-pentagon .pentagon-wrapper.active .definition {
        left: 520px !important;
        top: 340px !important;
    }
}
@media(max-width: 900px) {
    #str-pentagon .pentagon-wrapper.active .definition {
        position: relative;
        right: 0 !important;
        left: 0 !important;
        top: 0 !important;
        width: 100%;
        max-width: 100% !important;
        padding: 50px;
    }
    #str-pentagon .pentagon-wrapper.active .definition .buttons {
        text-align: center;
    }
    #str-pentagon .pentagon-wrapper.active .line-pointer{
        display: none;
    }
    #str-pentagon .pentagon-wrapper .controls {
        zoom: 0.5 !important;
    }
    #str-pentagon .pentagon-wrapper.active .definition {
        padding: 20px;
    }
}
@media(max-width: 768px) {
    #str-pentagon .pentagon-wrapper.active .definition .buttons {
        display: block;
    }
    #str-pentagon .pentagon-wrapper.active .definition .buttons a {
        width: 100% !important;
        margin: 0;
        margin-bottom: 10px;
    }
    #str-pentagon .floaters {
        display: none;
    }
}