:root {
    interpolate-size: allow-keywords;
}

details {
    overflow: hidden;
}

details::details-content {
    block-size: 0;
    transition:
        block-size 0.5s cubic-bezier(0.4, 0, 0.2, 1),
        content-visibility 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    transition-behavior: allow-discrete;
}

details[open]::details-content {
    block-size: auto;
}

details summary {
    transition-property: color, background-color;
    transition-duration: 300ms;
}
