/* Controls the website's look :3 */
:root {
            color-scheme: dark;
            --bg: #110917;
            --surface: rgba(28, 16, 35, 0.9);
            --surface-strong: rgba(42, 24, 58, 0.95);
            --border: rgba(255, 255, 255, 0.12);
            --text: #eef3ff;
            --muted: #c3cad9;
            --accent: #b86af2;
            --accent-soft: #8c5eea;
        }

        * {
            box-sizing: border-box;
        }

        html, body {
            width: 100%;
            min-height: 100%;
            height: 100%;
            overscroll-behavior-y: none;
        }

        html {
            background: transparent;
        }
        
        /* The body, controls the background and the animation */
        body {
            background: radial-gradient(circle at top right, rgba(192, 145, 255, 0.16), transparent 28%),
                        radial-gradient(circle at bottom left, rgba(255, 94, 202, 0.12), transparent 24%);
            background-attachment: fixed;
            
            animation: pulse 12s ease-in-out infinite;
            
            margin: 0;
            min-height: 100vh;
            font-family: Inter, system-ui, sans-serif;
            color: var(--text);
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: flex-start;
            padding: 32px 16px;
        }

        main {
            width: min(720px, 100%);
        }

        .heading-row {
            display: grid;
            grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) minmax(0, 1fr);
            align-items: center;
        }

        .profile-content {
            min-width: 0;
            grid-column: 2;
            text-align: center;
        }

        .locked {
            color: #e08282;
            border: 0;
            padding: 0;
            font: inherit;
            background: transparent;
        }

        .unlocked {
            color: #8bd49c;
            cursor: pointer;
            text-decoration: underline;
            text-underline-offset: 3px;
        }

        .unlocked:focus-visible {
            outline: 2px solid var(--accent);
            outline-offset: 2px;
        }

        .unlock-detail {
            display: block;
            margin-top: 8px;
            color: var(--muted);
        }

        .unlock-detail[hidden] {
            display: none;
        }

        .clue-button {
            padding: 2px 6px;
            border: 0;
            color: var(--accent);
            background: transparent;
            cursor: pointer;
            opacity: 0.65;
        }

        .clue-button:hover,
        .clue-button:focus-visible {
            opacity: 1;
        }

        .clue-button:focus-visible {
            outline: 2px solid var(--accent);
            outline-offset: 2px;
        }

        .question-dialog {
            width: min(400px, calc(100% - 32px));
            padding: 24px;
            border: 1px solid var(--border);
            border-radius: 12px;
            color: var(--text);
            background: var(--surface-strong);
        }

        .question-dialog::backdrop {
            background: rgba(0, 0, 0, 0.65);
        }

        .question-dialog form,
        .question-actions {
            display: grid;
            gap: 12px;
        }

        .question-dialog input,
        .question-actions button {
            padding: 8px 12px;
            border: 1px solid var(--border);
            border-radius: 6px;
            color: var(--text);
            font: inherit;
            background: var(--surface);
        }

        .question-actions {
            grid-template-columns: 1fr 1fr;
        }

        .question-actions button {
            cursor: pointer;
        }

        .question-error {
            margin: 0;
            color: #e08282;
        }

        .back-button {
            display: inline-block;
            grid-column: 1;
            justify-self: start;
            white-space: nowrap;
            padding: 8px 14px;
            border: 1px solid var(--border);
            border-radius: 8px;
            color: var(--text);
            text-decoration: none;
            background: var(--surface);
        }

        .back-button:hover {
            border-color: var(--accent);
            background: var(--surface-strong);
        }

        .back-button:focus-visible {
            outline: 2px solid var(--accent);
            outline-offset: 3px;
        }

        @media (max-width: 600px) {
            .heading-row {
                grid-template-columns: 1fr;
                gap: 16px;
            }

            .profile-content,
            .back-button {
                grid-column: 1;
            }
        }

        h1 {
            margin: 0 0 8px;
            font-size: clamp(2rem, 3vw, 2.6rem);
            letter-spacing: -0.03em;
        }

        h4 {
            margin: 0 0 24px;
            color: #59595a;
            font-weight: 500;
        }

        h3 {
            margin: 0 0 16px;
            color: var(--accent);
            text-transform: uppercase;
            letter-spacing: 0.16em;
            font-size: 0.95rem;
        }
        @keyframes pulse {
            0% {
                background-color: #120613; 
            }
            25% {
                background-color: #150d3072; 
            }
            50% {
                background-color: #120613; 
            }
            75% {
                background-color: #150d3072; 
            }
            100% {
                background-color: #120613; 
            }
        }