BareGit
:root {
    color-scheme: light;
    font-family: "DM Sans", ui-sans-serif, system-ui, sans-serif;
    color: #332f3a;
    background: #f4f1fa;
    --canvas: #f4f1fa;
    --foreground: #332f3a;
    --muted: #635f69;
    --violet: #7c3aed;
    --violet-light: #a78bfa;
    --pink: #db2777;
    --blue: #0ea5e9;
    --page-gutter: clamp(1.25rem, 3vw, 3rem);
    --main-top: 9rem;
    --main-bottom: 7rem;
    --clay-card-shadow:
        16px 16px 32px rgb(160 150 180 / 20%),
        -10px -10px 24px rgb(255 255 255 / 90%),
        inset 6px 6px 12px rgb(139 92 246 / 3%),
        inset -6px -6px 12px rgb(255 255 255 / 100%);
    --clay-card-shadow-hover:
        22px 24px 38px rgb(139 92 246 / 24%),
        -12px -12px 28px rgb(255 255 255 / 95%),
        inset 6px 6px 12px rgb(139 92 246 / 5%),
        inset -6px -6px 12px rgb(255 255 255 / 100%);
    --clay-button-shadow:
        12px 12px 24px rgb(139 92 246 / 30%),
        -8px -8px 16px rgb(255 255 255 / 40%),
        inset 4px 4px 8px rgb(255 255 255 / 40%),
        inset -4px -4px 8px rgb(0 0 0 / 10%);
    --clay-pressed-shadow:
        inset 10px 10px 20px #d9d4e3,
        inset -10px -10px 20px #ffffff;
}

* {
    box-sizing: border-box;
}

html {
    min-width: 20rem;
}

body {
    margin: 0;
    min-height: 100vh;
    overflow-x: hidden;
    background: var(--canvas);
    color: var(--foreground);
    font-weight: 500;
    line-height: 1.625;
}

a {
    color: inherit;
}

.ambient-light {
    position: fixed;
    z-index: -1;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
}

.ambient-blob {
    position: absolute;
    width: min(60vh, 42rem);
    height: min(60vh, 42rem);
    border-radius: 50%;
    opacity: 0.11;
    filter: blur(4rem);
    animation: clay-float 10s ease-in-out infinite;
}

.ambient-blob-violet {
    top: -18%;
    left: -12%;
    background: var(--violet);
}

.ambient-blob-pink {
    top: 22%;
    right: -14%;
    background: var(--pink);
    animation-name: clay-float-delayed;
    animation-delay: -3s;
}

.ambient-blob-blue {
    bottom: -24%;
    left: 28%;
    background: var(--blue);
    animation-duration: 12s;
    animation-delay: -6s;
}

.site-header {
    position: fixed;
    z-index: 100;
    top: 1.5rem;
    right: var(--page-gutter);
    left: var(--page-gutter);
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: auto;
    min-height: 5rem;
    margin: 0;
    padding: 0.8rem 1rem 0.8rem 1.6rem;
    border: 1px solid rgb(255 255 255 / 75%);
    border-radius: 2.5rem;
    background: rgb(255 255 255 / 68%);
    box-shadow:
        18px 18px 36px rgb(160 150 180 / 18%),
        -12px -12px 30px rgb(255 255 255 / 90%),
        inset 5px 5px 10px rgb(139 92 246 / 3%),
        inset -5px -5px 10px rgb(255 255 255 / 90%);
    backdrop-filter: blur(1.25rem);
}

.site-title {
    font-family: Nunito, ui-rounded, sans-serif;
    font-size: 1.2rem;
    font-weight: 900;
    letter-spacing: -0.025em;
    text-decoration: none;
}

nav {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.nav-link {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
    justify-content: center;
    padding: 0.65rem 1rem;
    border-radius: 1.25rem;
    color: var(--muted);
    font-weight: 700;
    text-decoration: none;
    transition:
        color 200ms ease,
        background 200ms ease,
        box-shadow 200ms ease,
        transform 200ms ease;
}

.nav-link:hover {
    color: var(--violet);
    background: rgb(124 58 237 / 8%);
    transform: translateY(-0.15rem);
}

.nav-link:active {
    transform: scale(0.92);
    box-shadow: var(--clay-pressed-shadow);
}

.nav-link-primary {
    margin-left: 0.35rem;
    padding-inline: 1.25rem;
    background: linear-gradient(145deg, var(--violet-light), var(--violet));
    color: #ffffff;
    box-shadow: var(--clay-button-shadow);
}

.nav-link-primary:hover {
    background: linear-gradient(145deg, #b7a1fb, #6d28d9);
    color: #ffffff;
    transform: translateY(-0.25rem);
}

main {
    width: 100%;
    min-height: 100vh;
    min-height: 100svh;
    margin: 0;
    padding:
        var(--main-top)
        var(--page-gutter)
        var(--main-bottom);
}

.page-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 2.5rem;
    margin-bottom: 3.25rem;
}

.eyebrow {
    margin: 0 0 0.25rem;
    color: var(--violet);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

h1 {
    margin: 0;
    font-family: Nunito, ui-rounded, sans-serif;
    font-size: clamp(3rem, 8vw, 5.5rem);
    font-weight: 900;
    line-height: 1.05;
    letter-spacing: -0.06em;
}

.sort-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
    padding: 0.55rem;
    border-radius: 1.5rem;
    background: #efebf5;
    box-shadow: var(--clay-pressed-shadow);
    font-size: 0.9rem;
}

.sort-label {
    padding: 0 0.65rem;
    color: var(--muted);
    font-size: 0.78rem;
    font-weight: 700;
}

.sort-button {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
    padding: 0.55rem 0.9rem;
    border-radius: 1.1rem;
    color: var(--muted);
    font-weight: 700;
    text-decoration: none;
    transition:
        color 200ms ease,
        box-shadow 200ms ease,
        transform 200ms ease;
}

.sort-button:hover {
    color: var(--violet);
    transform: translateY(-0.12rem);
}

.sort-button:active {
    transform: scale(0.92);
}

.sort-button[aria-current="page"] {
    background: linear-gradient(145deg, var(--violet-light), var(--violet));
    color: #ffffff;
    box-shadow:
        7px 7px 14px rgb(139 92 246 / 24%),
        -5px -5px 12px rgb(255 255 255 / 60%),
        inset 3px 3px 6px rgb(255 255 255 / 35%),
        inset -3px -3px 6px rgb(0 0 0 / 8%);
}

.card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr));
    gap: clamp(1.5rem, 3vw, 2.5rem);
    margin: 0;
    padding: 0;
    list-style: none;
}

.card-tile {
    overflow: hidden;
    border: 1px solid rgb(255 255 255 / 85%);
    border-radius: 2rem;
    background: rgb(255 255 255 / 72%);
    box-shadow: var(--clay-card-shadow);
    backdrop-filter: blur(1.25rem);
    transition:
        box-shadow 500ms ease,
        transform 500ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.card-tile:hover {
    box-shadow: var(--clay-card-shadow-hover);
    transform: translateY(-0.5rem) scale(1.01);
}

.card-image-link {
    display: block;
    aspect-ratio: 5 / 7;
    margin: 0.75rem;
    overflow: hidden;
    border-radius: 1.5rem;
    background: #e9e2f2;
    box-shadow:
        inset 7px 7px 14px rgb(174 164 190 / 20%),
        inset -7px -7px 14px rgb(255 255 255 / 85%),
        4px 4px 10px rgb(139 92 246 / 8%),
        -3px -3px 8px rgb(255 255 255 / 70%);
}

.card-image-link img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 500ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.card-tile:hover .card-image-link img {
    transform: scale(1.025);
}

.card-details {
    padding: 0.2rem 1.35rem 1.5rem;
}

.card-id {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
    margin-left: -0.5rem;
    padding: 0.35rem 0.6rem;
    border-radius: 1rem;
    color: var(--violet);
    font-family: ui-monospace, monospace;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-decoration: none;
    transition:
        background 200ms ease,
        transform 200ms ease;
}

.card-id:hover {
    background: rgb(124 58 237 / 8%);
    transform: translateY(-0.1rem);
}

.card-id:active {
    transform: scale(0.92);
}

.card-details h2 {
    margin: 0.1rem 0 0;
    font-family: Nunito, ui-rounded, sans-serif;
    font-size: 1.15rem;
    font-weight: 800;
    line-height: 1.3;
}

.empty-state {
    display: grid;
    min-height: 16rem;
    place-items: center;
    padding: 2rem;
    border-radius: 2rem;
    background: #efebf5;
    box-shadow: var(--clay-pressed-shadow);
    color: var(--muted);
    font-weight: 700;
}

.card-view {
    position: relative;
    min-height: 100vh;
    min-height: 100svh;
    margin:
        calc(0rem - var(--main-top))
        calc(0rem - var(--page-gutter))
        calc(0rem - var(--main-bottom));
    overflow: hidden;
}

.card-preview-stage {
    position: absolute;
    inset: 0;
    display: grid;
    min-height: 100%;
    overflow: hidden;
    background:
        radial-gradient(circle at 22% 16%,
                        rgb(255 255 255 / 80%), transparent 35%),
        linear-gradient(145deg, #ede7f8, #e2d9f2);
    isolation: isolate;
}

.card-preview-stage::before,
.card-preview-stage::after {
    position: absolute;
    z-index: -1;
    width: 16rem;
    height: 16rem;
    border-radius: 50%;
    content: "";
    filter: blur(3.5rem);
    opacity: 0.22;
}

.card-preview-stage::before {
    top: -5rem;
    right: -4rem;
    background: var(--pink);
}

.card-preview-stage::after {
    bottom: -5rem;
    left: -4rem;
    background: var(--blue);
}

.preview-heading {
    position: absolute;
    z-index: 2;
    top: var(--main-top);
    right: calc(var(--page-gutter) + 31rem);
    left: var(--page-gutter);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    pointer-events: none;
}

.preview-heading .eyebrow {
    margin: 0;
}

.preview-status,
.preview-hint {
    margin: 0;
    border: 1px solid rgb(255 255 255 / 70%);
    border-radius: 1rem;
    background: rgb(255 255 255 / 64%);
    box-shadow:
        7px 7px 16px rgb(134 119 158 / 16%),
        -5px -5px 14px rgb(255 255 255 / 70%),
        inset 3px 3px 7px rgb(139 92 246 / 3%),
        inset -3px -3px 7px rgb(255 255 255 / 75%);
    color: var(--muted);
    font-size: 0.78rem;
    font-weight: 700;
}

.preview-status {
    padding: 0.35rem 0.65rem;
}

.preview-status[data-kind="success"] {
    color: var(--violet);
}

.preview-status[data-kind="error"] {
    color: #a21d53;
}

#GLCanvas {
    display: block;
    width: calc(100% - 30rem);
    height: 100%;
    min-height: 100vh;
    min-height: 100svh;
    cursor: move;
    touch-action: none;
}

.preview-hint {
    position: absolute;
    right: calc(var(--page-gutter) + 31rem);
    bottom: 1.5rem;
    left: var(--page-gutter);
    width: fit-content;
    max-width: calc(100% - 3rem);
    margin-inline: auto;
    padding: 0.5rem 0.8rem;
    text-align: center;
    pointer-events: none;
}

.card-info-panel {
    position: fixed;
    z-index: 40;
    top: var(--main-top);
    right: var(--page-gutter);
    bottom: 1.5rem;
    width: min(
        29rem,
        calc(100% - var(--page-gutter) - var(--page-gutter)));
    overflow: auto;
    padding: clamp(1.5rem, 4vw, 2.5rem);
    border: 1px solid rgb(255 255 255 / 82%);
    border-radius: 2.5rem;
    background: rgb(255 255 255 / 70%);
    box-shadow: var(--clay-card-shadow);
    backdrop-filter: blur(1.25rem);
}

.back-link {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
    margin: -0.5rem 0 1.5rem -0.65rem;
    padding: 0.4rem 0.65rem;
    border-radius: 1rem;
    color: var(--muted);
    font-weight: 700;
    text-decoration: none;
    transition: color 200ms ease, transform 200ms ease;
}

.back-link:hover {
    color: var(--violet);
    transform: translateX(-0.2rem);
}

.card-actions {
    display: flex;
    justify-content: space-between;
    margin: -0.5rem 0 1.5rem -0.65rem;
}

.card-actions .back-link {
    margin: 0;
}

.card-view-id {
    margin: 0 0 0.4rem;
    color: var(--violet);
    font-family: ui-monospace, monospace;
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.08em;
}

.card-info-panel h1 {
    overflow-wrap: anywhere;
    font-size: clamp(2.6rem, 6vw, 4.5rem);
}

.asset-warning {
    display: grid;
    gap: 0.2rem;
    margin-top: 1.75rem;
    padding: 1rem 1.1rem;
    border-radius: 1.35rem;
    background: #fde7f0;
    box-shadow:
        8px 8px 18px rgb(190 90 130 / 13%),
        -6px -6px 15px rgb(255 255 255 / 72%),
        inset 3px 3px 8px rgb(190 90 130 / 5%),
        inset -3px -3px 8px rgb(255 255 255 / 65%);
    color: #812044;
    font-size: 0.88rem;
}

.card-metadata {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.75rem;
    margin: 2rem 0 0;
}

.card-metadata div {
    min-width: 0;
    padding: 0.9rem;
    border-radius: 1.25rem;
    background: #efebf5;
    box-shadow: var(--clay-pressed-shadow);
}

.card-metadata dt {
    color: var(--muted);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.card-metadata dd {
    margin: 0.2rem 0 0;
    overflow-wrap: anywhere;
    font-family: Nunito, ui-rounded, sans-serif;
    font-size: 0.95rem;
    font-weight: 800;
}

.game-field-value {
    white-space: pre-wrap;
}

.card-info-section {
    margin-top: 2rem;
    padding-top: 1.75rem;
    border-top: 1px solid rgb(99 95 105 / 12%);
}

.card-info-section h2 {
    margin: 0 0 0.75rem;
    font-family: Nunito, ui-rounded, sans-serif;
    font-size: 1rem;
    font-weight: 900;
}

.muted-copy,
.description-copy {
    margin: 0;
}

.muted-copy {
    color: var(--muted);
}

.description-copy {
    white-space: pre-wrap;
}

.series-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.series-list li {
    padding: 0.45rem 0.75rem;
    border-radius: 1rem;
    background: rgb(124 58 237 / 9%);
    color: var(--violet);
    font-size: 0.82rem;
    font-weight: 800;
}

.card-form-panel h1 {
    font-size: clamp(2.6rem, 5vw, 4rem);
}

.card-form {
    margin-top: 2rem;
}

.form-section {
    display: grid;
    gap: 1rem;
    margin: 0;
    padding: 1.75rem 0;
    border: 0;
    border-top: 1px solid rgb(99 95 105 / 12%);
}

.form-section[hidden] {
    display: none;
}

.form-section h2,
.form-section legend {
    margin: 0;
    padding: 0;
    font-family: Nunito, ui-rounded, sans-serif;
    font-size: 1rem;
    font-weight: 900;
}

.image-source-section legend {
    margin-bottom: 1rem;
}

.form-field {
    display: grid;
    gap: 0.45rem;
    color: var(--foreground);
    font-size: 0.84rem;
    font-weight: 800;
}

.form-field em {
    color: var(--muted);
    font-size: 0.74rem;
    font-style: normal;
    font-weight: 600;
}

.form-field input,
.form-field select,
.form-field textarea {
    width: 100%;
    min-height: 3.25rem;
    border: 0;
    border-radius: 1.15rem;
    background: #efebf5;
    box-shadow:
        inset 7px 7px 15px rgb(185 177 198 / 55%),
        inset -7px -7px 15px rgb(255 255 255 / 90%);
    color: var(--foreground);
    font: inherit;
    font-weight: 600;
}

.form-field input,
.form-field select {
    padding: 0.75rem 1rem;
}

.form-field textarea {
    min-height: 6rem;
    padding: 1rem;
    resize: vertical;
    line-height: 1.5;
}

.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
    background: rgb(255 255 255 / 84%);
    outline: 0.25rem solid rgb(124 58 237 / 20%);
}

.image-field input[type="file"] {
    padding: 0.45rem;
    color: var(--muted);
}

.image-field input[type="file"]::file-selector-button {
    min-height: 2.4rem;
    margin-right: 0.7rem;
    padding: 0.45rem 0.8rem;
    border: 0;
    border-radius: 0.85rem;
    background: rgb(124 58 237 / 11%);
    color: var(--violet);
    font: inherit;
    font-weight: 800;
    cursor: pointer;
}

.image-field small,
.form-hint {
    margin: 0;
    color: var(--muted);
    font-size: 0.76rem;
    font-weight: 600;
}

.source-toggle {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.35rem;
    padding: 0.4rem;
    border-radius: 1.35rem;
    background: #efebf5;
    box-shadow: var(--clay-pressed-shadow);
}

.source-toggle label {
    position: relative;
    cursor: pointer;
}

.source-toggle input {
    position: absolute;
    opacity: 0;
}

.source-toggle span {
    display: grid;
    min-height: 2.75rem;
    place-items: center;
    border-radius: 1rem;
    color: var(--muted);
    font-size: 0.8rem;
    font-weight: 800;
    transition:
        color 200ms ease,
        box-shadow 200ms ease,
        transform 200ms ease;
}

.source-toggle input:checked + span {
    background: linear-gradient(145deg, var(--violet-light), var(--violet));
    box-shadow:
        7px 7px 14px rgb(139 92 246 / 24%),
        -5px -5px 12px rgb(255 255 255 / 60%),
        inset 3px 3px 6px rgb(255 255 255 / 35%),
        inset -3px -3px 6px rgb(0 0 0 / 8%);
    color: #ffffff;
}

.source-toggle input:focus-visible + span {
    outline: 0.25rem solid rgb(124 58 237 / 30%);
    outline-offset: 0.2rem;
}

.source-fields {
    display: grid;
    gap: 1rem;
}

.source-fields[hidden] {
    display: none;
}

.form-submit {
    width: 100%;
    min-height: 3.5rem;
    margin-top: 0.25rem;
    border: 0;
    border-radius: 1.25rem;
    background: linear-gradient(145deg, var(--violet-light), var(--violet));
    box-shadow: var(--clay-button-shadow);
    color: #ffffff;
    font: inherit;
    font-weight: 800;
    cursor: pointer;
    transition:
        box-shadow 200ms ease,
        transform 200ms ease;
}

.form-submit:hover {
    box-shadow: var(--clay-card-shadow-hover);
    transform: translateY(-0.2rem);
}

.form-submit:active {
    box-shadow: var(--clay-pressed-shadow);
    transform: scale(0.92);
}

.form-status {
    min-height: 1.5rem;
    margin: 0.75rem 0 0;
    color: var(--muted);
    font-size: 0.8rem;
}

.page-shell {
    width: min(68rem, 100%);
    margin-inline: auto;
}

.form-page {
    width: min(40rem, 100%);
    padding: clamp(1.5rem, 5vw, 3rem);
    border: 1px solid rgb(255 255 255 / 82%);
    border-radius: 2.5rem;
    background: rgb(255 255 255 / 70%);
    box-shadow: var(--clay-card-shadow);
    backdrop-filter: blur(1.25rem);
}

.standalone-form {
    display: grid;
    gap: 1.25rem;
    margin-top: 2rem;
}

.empty-panel,
.series-admin-list > li {
    padding: 1.5rem;
    border-radius: 1.75rem;
    background: rgb(255 255 255 / 70%);
    box-shadow: var(--clay-card-shadow);
}

.series-admin-list {
    display: grid;
    gap: 1.25rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.series-admin-list > li,
.series-admin-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
}

.series-admin-list h2,
.empty-panel h2 {
    margin: 0;
}

.series-admin-actions a {
    color: var(--violet);
    font-weight: 800;
}

.destructive-submit {
    background: linear-gradient(145deg, #f87171, #be123c);
}

:focus-visible {
    outline: 0.25rem solid rgb(124 58 237 / 30%);
    outline-offset: 0.2rem;
}

@keyframes clay-float {
    0%,
    100% {
        transform: translateY(0) rotate(0deg);
    }

    50% {
        transform: translateY(-1.25rem) rotate(2deg);
    }
}

@keyframes clay-float-delayed {
    0%,
    100% {
        transform: translateY(0) rotate(0deg);
    }

    50% {
        transform: translateY(-0.95rem) rotate(-2deg);
    }
}

@media(max-width: 42rem) {
    :root {
        --main-top: 13rem;
    }

    .site-header {
        min-height: auto;
        padding: 1rem;
        border-radius: 2rem;
    }

    .site-header,
    .page-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    nav {
        width: 100%;
        flex-wrap: wrap;
    }

    .nav-link {
        flex: 1;
        padding-inline: 0.7rem;
    }

    .nav-link-primary {
        flex-basis: 100%;
        margin: 0.35rem 0 0;
    }

    .page-heading {
        margin-bottom: 2.5rem;
    }

    .sort-controls {
        width: 100%;
    }

    .sort-label {
        flex-basis: 100%;
        padding-bottom: 0.2rem;
    }

    .sort-button {
        flex: 1;
        justify-content: center;
    }

    .card-grid {
        grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
    }

    .card-metadata {
        grid-template-columns: 1fr;
    }
}

@media(max-width: 62rem) {
    .preview-heading {
        right: var(--page-gutter);
    }

    #GLCanvas {
        width: 100%;
    }

    .preview-hint {
        right: var(--page-gutter);
        bottom: calc(44svh + 2rem);
    }

    .card-info-panel {
        top: auto;
        right: 1rem;
        bottom: 1rem;
        left: 1rem;
        width: auto;
        max-height: 44vh;
        max-height: 44svh;
    }
}

@media(prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

.public-main {
    display: grid;
    place-items: center;
}

.public-header-note {
    color: var(--muted);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.welcome-hero {
    display: grid;
    width: 100%;
    min-height: calc(100svh - var(--main-top) - var(--main-bottom));
    grid-template-columns: minmax(0, 1.05fr) minmax(20rem, 0.95fr);
    align-items: center;
    gap: clamp(3rem, 8vw, 8rem);
}

.welcome-copy {
    max-width: 48rem;
}

.welcome-copy h1 {
    font-size: clamp(3.5rem, 8vw, 7.5rem);
}

.hero-copy {
    max-width: 40rem;
    margin: 2rem 0 2.5rem;
    color: var(--muted);
    font-size: clamp(1.05rem, 2vw, 1.35rem);
}

.clay-action,
.pull-button,
.table-action {
    display: inline-flex;
    min-height: 3.5rem;
    align-items: center;
    justify-content: center;
    padding: 0.75rem 1.5rem;
    border: 0;
    border-radius: 1.25rem;
    background: linear-gradient(145deg, var(--violet-light), var(--violet));
    box-shadow: var(--clay-button-shadow);
    color: #ffffff;
    font: inherit;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-decoration: none;
    cursor: pointer;
    transition:
        box-shadow 200ms ease,
        transform 200ms ease;
}

.clay-action:hover,
.pull-button:hover:not(:disabled),
.table-action:hover {
    box-shadow: var(--clay-card-shadow-hover);
    transform: translateY(-0.25rem);
}

.clay-action:active,
.pull-button:active:not(:disabled),
.table-action:active {
    box-shadow: var(--clay-pressed-shadow);
    transform: scale(0.92);
}

.clay-action-secondary {
    background: rgb(255 255 255 / 76%);
    color: var(--violet);
}

.clay-action-danger {
    background: linear-gradient(145deg, #fb7185, #be123c);
    color: #ffffff;
}

.clay-action:disabled {
    box-shadow: var(--clay-pressed-shadow);
    cursor: not-allowed;
    opacity: 0.48;
    transform: none;
}

.welcome-preview {
    position: relative;
    display: grid;
    min-height: 36rem;
    place-items: center;
    isolation: isolate;
}

.welcome-card {
    width: min(20rem, 68vw);
    padding: 0.9rem;
    border: 1px solid rgb(255 255 255 / 85%);
    border-radius: 2.5rem;
    background: rgb(255 255 255 / 72%);
    box-shadow:
        24px 28px 48px rgb(139 92 246 / 24%),
        -14px -14px 32px rgb(255 255 255 / 95%),
        inset 7px 7px 14px rgb(139 92 246 / 4%),
        inset -7px -7px 14px rgb(255 255 255 / 100%);
    backdrop-filter: blur(1.25rem);
    transform: rotate(4deg);
    transition:
        box-shadow 500ms ease,
        transform 500ms ease;
}

.welcome-card:hover {
    box-shadow: var(--clay-card-shadow-hover);
    transform: translateY(-0.75rem) rotate(1deg) scale(1.02);
}

.welcome-card img {
    display: block;
    width: 100%;
    aspect-ratio: 5 / 7;
    border-radius: 1.75rem;
    object-fit: cover;
}

.welcome-preview > p {
    position: absolute;
    right: 0;
    bottom: 1rem;
    left: 0;
    margin: 0;
    color: var(--muted);
    font-size: 0.85rem;
    font-weight: 700;
    text-align: center;
}

.welcome-orbit {
    position: absolute;
    z-index: -1;
    width: 12rem;
    height: 12rem;
    border-radius: 50%;
    filter: blur(0.25rem);
    opacity: 0.2;
    animation: clay-float 9s ease-in-out infinite;
}

.welcome-orbit-pink {
    top: 2rem;
    right: 0;
    background: var(--pink);
}

.welcome-orbit-blue {
    bottom: 3rem;
    left: 0;
    background: var(--blue);
    animation-name: clay-float-delayed;
}

.public-card {
    position: relative;
    width: min(42rem, 100%);
    padding: clamp(2rem, 6vw, 4rem);
    overflow: hidden;
    border: 1px solid rgb(255 255 255 / 82%);
    border-radius: clamp(2rem, 5vw, 3rem);
    background: rgb(255 255 255 / 70%);
    box-shadow:
        30px 30px 60px #cdc6d9,
        -30px -30px 60px #ffffff,
        inset 10px 10px 20px rgb(139 92 246 / 5%),
        inset -10px -10px 20px rgb(255 255 255 / 80%);
    backdrop-filter: blur(1.25rem);
}

.public-card h1 {
    font-size: clamp(2.65rem, 7vw, 4.5rem);
}

.public-card-copy {
    max-width: 34rem;
    margin: 1.25rem 0 0;
    color: var(--muted);
    font-size: 1.05rem;
}

.clay-icon {
    display: inline-grid;
    width: 3.5rem;
    height: 3.5rem;
    place-items: center;
    flex: 0 0 auto;
    margin-bottom: 1.5rem;
    border-radius: 1.25rem;
    box-shadow:
        10px 10px 20px rgb(139 92 246 / 20%),
        -7px -7px 14px rgb(255 255 255 / 60%),
        inset 4px 4px 8px rgb(255 255 255 / 35%),
        inset -4px -4px 8px rgb(0 0 0 / 9%);
    color: #ffffff;
    font-family: Nunito, ui-rounded, sans-serif;
    font-size: 1.35rem;
    font-weight: 900;
}

.clay-icon-violet {
    background: linear-gradient(145deg, #a78bfa, #7c3aed);
}

.clay-icon-pink {
    background: linear-gradient(145deg, #f472b6, #db2777);
}

.clay-icon-blue {
    background: linear-gradient(145deg, #38bdf8, #0284c7);
}

.message-card {
    text-align: center;
}

.message-card .public-card-copy {
    margin-inline: auto;
}

.message-hint,
.identity-pill {
    margin: 1.75rem 0 0;
    padding: 1rem 1.25rem;
    border-radius: 1.25rem;
    background: #efebf5;
    box-shadow: var(--clay-pressed-shadow);
    color: var(--muted);
    overflow-wrap: anywhere;
}

.identity-pill {
    color: var(--foreground);
    font-weight: 800;
    text-align: center;
}

.collection-page,
.account-page,
.users-page {
    width: 100%;
}

.collection-heading {
    align-items: center;
}

.pull-panel {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.75rem;
    border: 1px solid rgb(255 255 255 / 82%);
    border-radius: 2rem;
    background: rgb(255 255 255 / 68%);
    box-shadow: var(--clay-card-shadow);
    backdrop-filter: blur(1.25rem);
}

.pull-count {
    display: grid;
    min-width: 8rem;
    padding: 0.4rem 0.75rem;
    text-align: center;
}

.pull-count strong {
    color: var(--violet);
    font-family: Nunito, ui-rounded, sans-serif;
    font-size: 2rem;
    font-weight: 900;
    line-height: 1;
}

.pull-count span {
    color: var(--muted);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.pull-button:disabled {
    background: #d8d1e2;
    box-shadow: var(--clay-pressed-shadow);
    color: var(--muted);
    cursor: not-allowed;
}

.collection-notice {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    margin-bottom: 2.5rem;
    padding: 1.25rem 1.5rem;
    border-radius: 2rem;
    background: rgb(255 255 255 / 70%);
    box-shadow: var(--clay-card-shadow);
}

.collection-notice .clay-icon {
    margin: 0;
}

.collection-notice strong {
    font-family: Nunito, ui-rounded, sans-serif;
    font-size: 1.1rem;
    font-weight: 900;
}

.collection-notice p {
    margin: 0;
    color: var(--muted);
}

.collection-empty {
    display: grid;
    min-height: 20rem;
    place-items: center;
    align-content: center;
    padding: 2rem;
    border-radius: 2.5rem;
    background: #efebf5;
    box-shadow: var(--clay-pressed-shadow);
    text-align: center;
}

.collection-empty .clay-icon {
    margin: 0 0 1.25rem;
}

.collection-empty h2 {
    margin: 0;
    font-family: Nunito, ui-rounded, sans-serif;
    font-size: clamp(1.5rem, 4vw, 2rem);
    font-weight: 900;
}

.collection-empty p {
    margin: 0.35rem 0 0;
    color: var(--muted);
}

.collection-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr));
    gap: clamp(1.5rem, 3vw, 2.5rem);
    margin: 0;
    padding: 0;
    list-style: none;
}

.collection-card {
    min-width: 0;
}

.collection-card a {
    position: relative;
    display: grid;
    height: 100%;
    padding: 0.75rem 0.75rem 1.25rem;
    overflow: hidden;
    border: 1px solid rgb(255 255 255 / 85%);
    border-radius: 2rem;
    background: rgb(255 255 255 / 72%);
    box-shadow: var(--clay-card-shadow);
    text-decoration: none;
    backdrop-filter: blur(1.25rem);
    transition:
        box-shadow 500ms ease,
        transform 500ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.collection-card a:hover {
    box-shadow: var(--clay-card-shadow-hover);
    transform: translateY(-0.5rem) scale(1.015);
}

.collection-card a:active {
    box-shadow: var(--clay-pressed-shadow);
    transform: scale(0.97);
}

.collection-image {
    display: block;
    aspect-ratio: 5 / 7;
    overflow: hidden;
    border-radius: 1.5rem;
    background: #e9e2f2;
    box-shadow:
        inset 7px 7px 14px rgb(174 164 190 / 20%),
        inset -7px -7px 14px rgb(255 255 255 / 85%),
        4px 4px 10px rgb(139 92 246 / 8%),
        -3px -3px 8px rgb(255 255 255 / 70%);
}

.collection-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 500ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.collection-card a:hover img {
    transform: scale(1.035);
}

.collection-card-details {
    display: grid;
    gap: 0.1rem;
    padding: 1rem 0.6rem 0;
}

.collection-card-name {
    overflow-wrap: anywhere;
    font-family: Nunito, ui-rounded, sans-serif;
    font-size: 1.1rem;
    font-weight: 900;
    line-height: 1.25;
}

.collection-card-details > span {
    color: var(--violet);
    font-size: 0.75rem;
    font-weight: 800;
}

.collection-quantity {
    position: absolute;
    top: 1.35rem;
    right: 1.35rem;
    display: grid;
    min-width: 2.75rem;
    min-height: 2.75rem;
    place-items: center;
    padding: 0.35rem 0.6rem;
    border: 2px solid rgb(255 255 255 / 70%);
    border-radius: 50%;
    background: linear-gradient(145deg, #f472b6, #db2777);
    box-shadow:
        8px 8px 18px rgb(190 36 105 / 30%),
        -5px -5px 12px rgb(255 255 255 / 50%),
        inset 3px 3px 7px rgb(255 255 255 / 35%),
        inset -3px -3px 7px rgb(0 0 0 / 9%);
    color: #ffffff;
    font-family: Nunito, ui-rounded, sans-serif;
    font-size: 0.85rem;
    font-weight: 900;
}

.account-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(18rem, 0.8fr);
    gap: clamp(1.5rem, 3vw, 2.5rem);
}

.settings-card {
    display: grid;
    align-content: start;
    gap: 1.5rem;
    padding: clamp(1.75rem, 4vw, 2.75rem);
    border: 1px solid rgb(255 255 255 / 82%);
    border-radius: 2.5rem;
    background: rgb(255 255 255 / 70%);
    box-shadow: var(--clay-card-shadow);
    backdrop-filter: blur(1.25rem);
}

.settings-card .clay-icon {
    margin: 0;
}

.settings-label {
    margin: 0 0 0.4rem;
    color: var(--violet);
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.settings-card h2 {
    margin: 0 0 0.5rem;
    font-family: Nunito, ui-rounded, sans-serif;
    font-size: 1.5rem;
    font-weight: 900;
    line-height: 1.2;
}

.account-details {
    display: grid;
    gap: 0.75rem;
    margin: 1.5rem 0 0;
}

.account-details div {
    display: grid;
    gap: 0.15rem;
    padding: 1rem 1.25rem;
    border-radius: 1.25rem;
    background: #efebf5;
    box-shadow: var(--clay-pressed-shadow);
}

.account-details dt {
    color: var(--muted);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.account-details dd {
    margin: 0;
    overflow-wrap: anywhere;
    font-family: Nunito, ui-rounded, sans-serif;
    font-size: 1.05rem;
    font-weight: 800;
}

.settings-card .clay-action {
    width: fit-content;
}

.heading-copy {
    max-width: 24rem;
    margin: 0;
    color: var(--muted);
    font-size: 1.05rem;
}

.user-table-shell {
    overflow-x: auto;
    padding: 1rem;
    border: 1px solid rgb(255 255 255 / 82%);
    border-radius: 2.5rem;
    background: rgb(255 255 255 / 70%);
    box-shadow: var(--clay-card-shadow);
    backdrop-filter: blur(1.25rem);
}

.user-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0 0.75rem;
    text-align: left;
}

.user-table th {
    padding: 0 1rem 0.25rem;
    color: var(--muted);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.user-table td {
    padding: 1rem;
    background: #efebf5;
    box-shadow:
        inset 5px 5px 11px rgb(185 177 198 / 40%),
        inset -5px -5px 11px rgb(255 255 255 / 85%);
    overflow-wrap: anywhere;
}

.user-table td:first-child {
    border-radius: 1.25rem 0 0 1.25rem;
}

.user-table td:last-child {
    border-radius: 0 1.25rem 1.25rem 0;
}

.role-badge {
    display: inline-flex;
    min-height: 2rem;
    align-items: center;
    padding: 0.3rem 0.75rem;
    border-radius: 999px;
    background: rgb(124 58 237 / 10%);
    color: var(--violet);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.user-action {
    text-align: right;
}

.table-action {
    min-height: 2.75rem;
    padding: 0.5rem 1rem;
    font-size: 0.8rem;
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

@media(max-width: 62rem) {
    .welcome-hero,
    .account-grid {
        grid-template-columns: 1fr;
    }

    .welcome-copy {
        text-align: center;
        justify-self: center;
    }

    .hero-copy {
        margin-inline: auto;
    }

    .welcome-preview {
        min-height: 32rem;
    }

    .collection-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .pull-panel {
        width: fit-content;
    }
}

@media(max-width: 42rem) {
    .public-main {
        padding-top: 10rem;
    }

    .public-header {
        align-items: center;
        flex-direction: row;
    }

    .public-header-note {
        font-size: 0.65rem;
    }

    .welcome-hero {
        gap: 1rem;
    }

    .welcome-copy h1 {
        font-size: clamp(3.25rem, 17vw, 5rem);
    }

    .welcome-preview {
        min-height: 29rem;
    }

    .public-card {
        padding: 2rem 1.5rem;
        border-radius: 2rem;
    }

    .pull-panel {
        width: 100%;
        align-items: stretch;
        flex-direction: column;
    }

    .pull-panel form,
    .pull-button {
        width: 100%;
    }

    .collection-grid {
        grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
        gap: 1rem;
    }

    .collection-card a {
        border-radius: 1.5rem;
    }

    .collection-image {
        border-radius: 1.15rem;
    }

    .settings-card {
        border-radius: 2rem;
    }

    .settings-card .clay-action,
    .settings-card form,
    .settings-card form .clay-action {
        width: 100%;
    }

    .user-table-shell {
        padding: 0;
        overflow: visible;
        border: 0;
        background: transparent;
        box-shadow: none;
    }

    .user-table,
    .user-table tbody,
    .user-table tr,
    .user-table td {
        display: block;
        width: 100%;
    }

    .user-table thead {
        display: none;
    }

    .user-table tr {
        margin-bottom: 1.25rem;
        padding: 1.25rem;
        border: 1px solid rgb(255 255 255 / 82%);
        border-radius: 2rem;
        background: rgb(255 255 255 / 70%);
        box-shadow: var(--clay-card-shadow);
    }

    .user-table td {
        display: grid;
        grid-template-columns: 6rem minmax(0, 1fr);
        gap: 0.75rem;
        padding: 0.6rem 0;
        background: transparent;
        box-shadow: none;
    }

    .user-table td::before {
        color: var(--muted);
        content: attr(data-label);
        font-size: 0.68rem;
        font-weight: 800;
        letter-spacing: 0.08em;
        text-transform: uppercase;
    }

    .user-table td:first-child,
    .user-table td:last-child {
        border-radius: 0;
    }

    .user-table .user-action {
        display: block;
        padding-top: 1rem;
        text-align: left;
    }

    .user-action form,
    .table-action {
        width: 100%;
    }
}

.management-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1.25rem;
    margin-bottom: 2.5rem;
}

.page-heading .management-actions {
    justify-content: flex-end;
    margin-bottom: 0;
}

.games-page {
    width: 100%;
}

.game-admin-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(22rem, 1fr));
    gap: clamp(1.5rem, 3vw, 2.5rem);
    margin: 0;
    padding: 0;
    list-style: none;
}

.game-admin-card {
    padding: clamp(1.5rem, 4vw, 2.5rem);
    border: 1px solid rgb(255 255 255 / 82%);
    border-radius: 2.5rem;
    background: rgb(255 255 255 / 70%);
    box-shadow: var(--clay-card-shadow);
    backdrop-filter: blur(1.25rem);
    transition:
        box-shadow 500ms ease,
        transform 500ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.game-admin-card:hover {
    box-shadow: var(--clay-card-shadow-hover);
    transform: translateY(-0.5rem);
}

.game-admin-card > header {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.game-admin-card .clay-icon {
    margin: 0;
    text-transform: uppercase;
}

.game-admin-card h2 {
    margin: 0;
    font-family: Nunito, ui-rounded, sans-serif;
    font-size: 1.6rem;
    font-weight: 900;
    line-height: 1.2;
}

.game-description {
    margin: 1.5rem 0;
    color: var(--muted);
    white-space: pre-wrap;
}

.game-field-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.75rem;
    font-family: Nunito, ui-rounded, sans-serif;
    font-weight: 900;
}

.game-field-heading span {
    display: grid;
    min-width: 2rem;
    min-height: 2rem;
    place-items: center;
    border-radius: 50%;
    background: rgb(124 58 237 / 10%);
    color: var(--violet);
    font-size: 0.75rem;
}

.game-field-list {
    display: grid;
    gap: 0.65rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.game-field-list li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.9rem 1rem;
    border-radius: 1.25rem;
    background: #efebf5;
    box-shadow:
        inset 5px 5px 11px rgb(185 177 198 / 40%),
        inset -5px -5px 11px rgb(255 255 255 / 85%);
}

.game-field-list li > span:first-child {
    display: grid;
}

.game-field-list small {
    color: var(--muted);
    font-family: ui-monospace, monospace;
}

.field-type {
    padding: 0.3rem 0.65rem;
    border-radius: 999px;
    background: rgb(14 165 233 / 10%);
    color: #036b9f;
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.internal-badge {
    display: inline-flex;
    align-items: center;
    min-height: 1.75rem;
    padding: 0.25rem 0.7rem;
    border: 1px solid rgb(219 39 119 / 18%);
    border-radius: 999px;
    background: rgb(245 158 11 / 15%);
    box-shadow:
        4px 4px 9px rgb(160 150 180 / 16%),
        -3px -3px 7px rgb(255 255 255 / 82%),
        inset 2px 2px 4px rgb(255 255 255 / 40%),
        inset -2px -2px 4px rgb(219 39 119 / 8%);
    color: #9d174d;
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    line-height: 1;
    text-transform: uppercase;
}

.visibility-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin: 1.5rem 0;
    padding: 0;
    border: 0;
}

.visibility-options legend {
    grid-column: 1 / -1;
    margin-bottom: 0.2rem;
    font-family: Nunito, ui-rounded, sans-serif;
    font-size: 0.9rem;
    font-weight: 900;
}

.visibility-option {
    display: flex;
    align-items: center;
    min-height: 4.5rem;
    gap: 0.8rem;
    padding: 0.9rem 1rem;
    border-radius: 1.25rem;
    background: #efebf5;
    box-shadow: var(--clay-pressed-shadow);
    cursor: pointer;
}

.visibility-option:has(input:checked) {
    background: rgb(255 255 255 / 84%);
    outline: 0.2rem solid rgb(124 58 237 / 18%);
}

.visibility-option:has(input:focus-visible) {
    outline: 0.25rem solid rgb(124 58 237 / 30%);
}

.visibility-option input {
    width: 1.25rem;
    height: 1.25rem;
    margin: 0;
    accent-color: var(--violet);
}

.visibility-option span {
    display: grid;
    gap: 0.2rem;
}

.visibility-option strong {
    font-family: Nunito, ui-rounded, sans-serif;
    font-weight: 900;
}

.visibility-option small {
    color: var(--muted);
    font-weight: 600;
    line-height: 1.35;
}

@media(max-width: 42rem) {
    .visibility-options {
        grid-template-columns: 1fr;
    }
}

.game-editor {
    width: 100%;
}

.clay-form-panel,
.definition-panel {
    padding: clamp(1.5rem, 4vw, 2.5rem);
    border: 1px solid rgb(255 255 255 / 82%);
    border-radius: 2.5rem;
    background: rgb(255 255 255 / 70%);
    box-shadow: var(--clay-card-shadow);
    backdrop-filter: blur(1.25rem);
}

.clay-form-panel {
    width: min(52rem, 100%);
}

.definition-panel {
    margin-top: 2.5rem;
}

.section-heading,
.definition-list > li,
.definition-actions,
.choice-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.section-heading h2,
.definition-copy h3 {
    margin: 0;
    font-family: Nunito, ui-rounded, sans-serif;
    font-weight: 900;
}

.definition-list {
    display: grid;
    gap: 1rem;
    margin: 1.75rem 0 0;
    padding: 0;
    list-style: none;
}

.definition-list > li {
    padding: 1.25rem;
    border-radius: 1.75rem;
    background: #efebf5;
    box-shadow: var(--clay-pressed-shadow);
}

.definition-copy p {
    margin: 0;
    color: var(--muted);
}

.definition-actions {
    flex-wrap: wrap;
    justify-content: flex-end;
}

.definition-actions form {
    margin: 0;
}

.definition-actions .clay-action,
.choice-row .clay-action {
    min-height: 2.75rem;
    padding: 0.55rem 0.9rem;
}

.choice-rows {
    display: grid;
    gap: 0.85rem;
    margin-bottom: 1rem;
}

.choice-row input {
    min-width: 10rem;
    min-height: 3.25rem;
    flex: 1;
    padding: 0.75rem 1rem;
    border: 0;
    border-radius: 1.15rem;
    background: #efebf5;
    box-shadow:
        inset 7px 7px 15px rgb(185 177 198 / 55%),
        inset -7px -7px 15px rgb(255 255 255 / 90%);
    color: var(--foreground);
    font: inherit;
    font-weight: 600;
}

.choice-row input:focus {
    background: rgb(255 255 255 / 84%);
    outline: 0.25rem solid rgb(124 58 237 / 20%);
}

.form-tail-actions {
    margin-top: 2rem;
    margin-bottom: 0;
}

.mutation-error-page {
    width: min(56rem, 100%);
}

.mutation-error-page h1 {
    margin-bottom: 2rem;
}

.error-summary {
    margin-bottom: 2rem;
    padding: 1.5rem;
    border: 2px solid rgb(190 24 93 / 28%);
    border-radius: 1.75rem;
    background: rgb(255 255 255 / 72%);
    box-shadow: var(--clay-card-shadow);
}

.error-summary h2,
.error-summary p {
    margin-top: 0;
}

.error-summary p:last-child {
    margin-bottom: 0;
}

.field-error {
    color: #9d174d;
    font-weight: 800;
}

[aria-invalid="true"] {
    border-color: #be185d;
    box-shadow: 0 0 0 0.2rem rgb(190 24 93 / 14%);
}

@media(max-width: 42rem) {
    .management-actions,
    .page-heading .management-actions {
        width: 100%;
        align-items: stretch;
        flex-direction: column;
    }

    .management-actions > .clay-action {
        width: 100%;
    }

    .game-admin-grid {
        grid-template-columns: 1fr;
    }

    .game-admin-card {
        border-radius: 2rem;
    }

    .section-heading,
    .definition-list > li,
    .choice-row {
        align-items: stretch;
        flex-direction: column;
    }

    .definition-actions,
    .definition-actions form,
    .definition-actions .clay-action,
    .choice-row .clay-action {
        width: 100%;
    }
}