* {
            box-sizing: border-box;
        }

        body {
            margin: 0;
            min-height: 100vh;
            background: #000;
            font-family: Calibri, sans-serif;
            color: #fff;

            display: flex;
            align-items: center;
            justify-content: center;
        }

        .content {
            width: 100%;
            text-align: center;
        }

        .message {
            font-size: 40px;
            font-weight: 400;
        }

        .output-area {
            margin-top: 18px;

            width: 100%;
            min-height: 50px;

            display: flex;
            justify-content: center;
            align-items: center;
        }


        .output {
            display: flex;
            align-items: center;
            justify-content: center;

            opacity: 0;

            transition: opacity 0.4s ease;
        }

        .output.visible {
            opacity: 1;
        }


        .color-square {
            width: 90px;
            height: 45px;

            border: 1px solid white;

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

            font-size: 14px;
        }


        .quote,
        .number {
            font-size: 24px;
            font-weight: 400;
        }


        .media-player {
            width: 420px;
            max-width: 80vw;
        }

        video {
            max-height: 240px;
        }

        audio {
            width: 420px;
            max-width: 80vw;
        }

        .menu {
            position: fixed;
            top: 20px;
            right: 20px;
        }

        .menu-button {
            width: 42px;
            height: 42px;
            padding: 0;

            border: 1px solid white;
            border-radius: 50%;
            background: transparent;

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

            cursor: pointer;
        }

        .waffle {
            width: 14px;
            height: 14px;

            display: grid;
            grid-template-columns: repeat(3, 3px);
            grid-template-rows: repeat(3, 3px);
            gap: 2.5px;
        }

        .dot {
            width: 3px;
            height: 3px;
            background: white;
            border-radius: 50%;
        }


        .links {
            position: absolute;
            top: 51px;
            right: 0;

            min-width: 170px;
            max-height: 80vh;
            overflow-y: auto;

            padding: 6px 0;

            background: black;
            border-radius: 6px;

            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.12);

            transform-origin: top center;
            transform: perspective(400px) rotateX(-90deg);

            opacity: 0;
            visibility: hidden;

            transition:
                transform 0.25s ease,
                opacity 0.2s ease,
                visibility 0.25s;
        }

        .links.show {
            transform: perspective(400px) rotateX(0deg);
            opacity: 1;
            visibility: visible;
        }

        .links a {
            display: block;
            padding: 9px 14px;

            color: #fff;
            text-decoration: none;
            font-size: 14px;
        }

        .links a:hover {
            background: #f0f0f0;
            color: #000;
        }

        .category {
            padding: 9px 14px 4px;

            color: #888;
            font-size: 12px;
            text-transform: uppercase;
        }

        .category:first-child {
            padding-top: 5px;
        }
