.mock {
    width: 224.248px;
    aspect-ratio: 224.248 / 472.375;

    color: black;
    font-family: 'Helvetica';

    font-size: 16px;
    margin-bottom: 0.5rem; /* prevents shadow overstepping */
    isolation: isolate;
}

.mock::before {
    content: "";
    width: 140%;
    height: 10%;
    position: absolute;
    background: radial-gradient(black 0%, transparent 70%, transparent 100%);
    border-radius: 10% / 50%;
    bottom: -5%;
}

.mock .screen {
    height: 97%;
    width: 94%;
    border-radius: 23px / 7%;
    background-color: #f5f9fbff;
    overflow: hidden;
}

.mock.dark-mode .screen .island {
    color: white;
}

.mock .screen::after {
    content: "";
    position: absolute;
    background-color: #262424ff;
    width: 37%;
    height: .75%;
    bottom: 1%;
    border-radius: 3px;
}

.mock .screen .content {
    height: 100%;
    width: 100%;
}

.mock .screen .island {
    width: 100%;
    position: absolute;
    top: 0;
    font-size: 0.6em;
}

.mock .screen .island .infos {
    flex-direction: row;
    width: 100%;
    justify-content: space-between;
    padding: 3% 8%;
    font-size: min(1.75vmin, 90%);
}

.mock .screen .island .infos > div {
    flex-direction: row;
    gap: 3px;
}

.mock .screen .island .infos > div:last-child {
    font-size: .7em;
}

.mock .screen .island .speakers {
    background-color: #404040;
    width: 11%;
    height: 12%;
    position: absolute;
    border-radius: 25px;
    bottom: 72%;
    margin: auto;
    left: 44%;
}

.mock .screen .island .camera {
    background-color: #15162e;
    width: 3%;
    height: 26%;
    position: absolute;
    border-radius: 25px;
    bottom: 65%;
    margin: auto;
    right: 39%;
}

.mock .screen .island .opaque-cover {
    width: 100%;
    height: 100%;
    position: absolute;
}

.mock .screen .island .opaque-cover::after {
    content: "";
    position: absolute;
    background-color: #262424ff;
    width: 52%;
    height: 70%;
    top: -1px;
    border-radius: 0 0 25px 25px;
}

.mock .frame {
    height: 100%;
    width: 100%;
    position: absolute;

    background-color: #262424ff;
    border-radius: 28px / 7%;
    box-shadow: 0px 0px 4px 0px black;
    border: 1px solid #75732b;
}

.mock .frame > * {
    z-index: -1; /** buttons goes behind frame */
}

.mock .frame .standby-button {
    position: absolute;
    background-color: #343434;
    height: 12%;
    width: 1.5%;
    right: calc(-1% - 2px);
    top: 21%;
    border-radius: 0 5px 5px 0;
    box-shadow: inset 0px 0px 2px #c6c6c62b, 0px 0px 4px 0px black;
}

.mock .frame .volume-buttons {
    position: absolute;
    height: 100%;
    width: 1.5%;
    left: calc(-1% - 2px);
}

.mock .frame .volume-buttons > * {
    position: absolute;
    height: 7%;
    width: 100%;
    border-radius: 5px 0 0 5px;
    box-shadow: inset 0px 0px 2px #c6c6c62b, 0px 0px 4px 0px black;
    background-color: #343434;
}

.mock .frame .volume-buttons > *:first-child {
    content: '';
    top: 19.5%;
}

.mock .frame .volume-buttons > *:last-child {
    content: '';
    top: 28.5%;
}

/** */

.mock .carousel {
    height: 100%;
    width: 100%;
    align-items: flex-start;
    justify-content: flex-start;
    -ms-overflow-style: none;  /* IE and Edge */
    scrollbar-width: none;  /* Firefox */
}

/* Hide scrollbar for Chrome, Safari and Opera */
.mock .carousel::-webkit-scrollbar {
    display: none;
}
  
.mock .carousel > * {
    height: 100%;
    width: 100%;
    flex-direction: row;
    justify-content: start;
}

.mock .carousel > * > * {
    width: 100%;
    height: 100%;
    flex-shrink: 0;
    overflow: hidden;
}