.dialog-trigger+input:not(:checked)+.dialog {
    display: none;
}

.dialog-trigger+input:checked+.dialog {
    display: block;
}

.dialog-trigger+input:checked::after {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
}

:is(dialog, .dialog) {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    margin: 0;
    z-index: 20;
    background: var(--m3-scheme-surface-container-high);
    border: none;
    border-radius: var(--m3-dialog-shape);
    min-width: 35rem;
    max-width: 35rem;
    text-align: center;
    padding: 1.45rem 1.5rem;
}

dialog:not(.bottom-sheet)[open],
.dialog-trigger+input:checked+.dialog:not(.bottom-sheet) {
    animation: dialog-in .5s cubic-bezier(.05, .7, .1, 1), dialog-opacity .5s cubic-bezier(.05, .7, .1, 1);
}

@keyframes dialog-in {
    0% {
        transform: translate(-50%, -70%);
        clip-path: inset(0 0 100% 0 round var(--m3-util-rounding-extra-large));
    }

    100% {
        transform: translate(-50%, -50%);
        clip-path: inset(0 0 0 0 round var(--m3-util-rounding-extra-large));
    }
}

@keyframes dialog-opacity {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

:is(dialog, .dialog).bottom-sheet {
    top: 100%;
    transform: translate(-50%, -100%);
    overflow: hidden;
    background: var(--m3-scheme-surface-container-low);
    color: var(--m3-scheme-on-surface);
    border-radius: var(--m3-bottom-sheet-shape) var(--m3-bottom-sheet-shape) 0 0;
    padding: 1rem 1rem;
    border: none;
}

dialog[open].bottom-sheet,
.dialog-trigger+input:checked+.dialog.bottom-sheet {
    animation: dialog-bottom .5s cubic-bezier(.05, .7, .1, 1);
}

@keyframes dialog-bottom {
    0% {
        transform: translate(-50%, 50%);
    }

    100% {
        transform: translate(-50%, -100%);
    }
}

dialog::backdrop,
.dialog-trigger+input:checked::after {
    background: rgb(from var(--m3-scheme-scrim) r g b / 30%);
}

:is(dialog, .dialog) form {
    text-align: right;
}