html, body {
    margin: 0;
}

body {
    background: #212121;
    display: grid;
    place-items: center;
    font-family: "Readex Pro", "Noto Sans Tc", monospace;
}

main {
    background: black;
    width: 800px;
    height: 420px;
    position: relative;
    overflow: hidden;
    border-radius: .5rem;
}

main img, .cover_wrapper, .brand {
    pointer-events: none;
    user-select: none;
}

main.render {
    border-radius: unset;
}

.mask {
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    background-image: linear-gradient(to bottom, rgb(0 0 0/0.1),rgb(0 0 0/0.8),black);
}

.cover_wrapper {
    position: absolute;
    inset: 0;
    top: 0;
}

.cover {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
    box-shadow: 0 10px 20px -3px rgba(0, 0, 0, .3);
}

.content {
    width: 90%;
    position: absolute;
    display: flex;
    flex-direction: column;
    bottom: 0;
    left: 0;
    padding: 2.5rem;
    gap: .75rem;
}

.content * {
    color: white;
    overflow-wrap: break-word;
}

h1 {
    margin: 0;
    font-size: 1.875rem;
    line-height: 2.25rem;
}

span, input, button {
    font-family: "Roboto Mono", "Noto Sans Tc", monospace;
    opacity: .9;
    font-size: 1.125rem;
    color: white;
}

.container {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.fields {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

input, button {
    background: none;
    border-radius: 5px;
    border: 1px solid #dcdcdc;
    color: #dcdcdc;
    padding: .5rem 1rem;
    font-size: 16px;
    outline: none;
}

label {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

button {
    cursor: pointer;
    border: none;
}

button.green {
    background: #04AA6D;
    color: white;
}

button.blue {
    background: #1f8be3;
    color: white;
}

button.big {
    padding: .5rem 1.5rem;
}

.author {
    margin-top: .5rem;
    display: flex;
    align-items: center;
    gap: .75rem;
}

.author span {
    opacity: .9;
    font-size: 16px;
}

.author img {
    border-radius: 50%;
}

[contenteditable="true"] {
    outline: none;
}

.brand {
    align-items: center;
    margin-left: auto;
    display: flex;
    gap: .75rem;
}

.brand span {
    opacity: .75;
    font-size: 20px;
}

.cta {
    display: flex;
    align-items: center;
}

.cta pre {
    color: #dcdcdc;
    font-size: 16px;
    opacity: .9;
}

.buttons {
    margin-left: auto;
    display: flex;
    gap: 1rem;
}