* { box-sizing: border-box; }

html, body {
    margin: 0;
    height: 100vh;
    width: 100vw;
    background: var(--presenter-bg, #000);
    color: var(--presenter-fg, #fff);
    font-family: var(--presenter-font);
    overflow: hidden;
    cursor: none;
    user-select: none;
}

.stage {
    height: 100vh;
    width: 100vw;
    display: grid;
    grid-template-rows: auto 1fr auto;
    padding: 4vh 6vw;
    gap: 2vh;
}

.stage.blank .title,
.stage.blank .lyrics,
.stage.blank .next { visibility: hidden; }

.title {
    font-size: calc(var(--presenter-font-size) * 0.5);
    font-weight: 500;
    opacity: 0.6;
    text-align: left;
}
.title.hidden { visibility: hidden; }

.lyrics {
    align-self: center;
    text-align: center;
    line-height: 1.2;
}

.lyrics .line {
    font-size: var(--presenter-font-size);
    font-weight: 600;
    color: var(--presenter-fg, #fff);
}
.lyrics .line2 { font-weight: 500; opacity: 0.95; }

.next {
    text-align: center;
    line-height: 1.15;
    color: var(--presenter-fg-next, #ccc);
}
.next .line {
    font-size: calc(var(--presenter-font-size) * 0.5);
    font-weight: 400;
}

.hidden { display: none !important; }

.standby {
    position: fixed;
    inset: 0;
    background: var(--presenter-bg, #000);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.standby-image {
    flex: 1 1 auto;
    width: 100%;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    transition: opacity 0.6s ease, background-image 0.6s ease;
}
.standby-mode-black .standby-image { display: none; }
.standby-mode-image .standby-image,
.standby-mode-slideshow .standby-image { background-color: #000; }
.standby-text {
    flex: 0 0 auto;
    padding: 4vh 6vw;
    font-size: calc(var(--presenter-font-size) * 0.6);
    font-weight: 500;
    color: var(--presenter-fg, #fff);
    text-align: center;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.7);
}
