/* 放映室：深色影院式单页，16:9 舞台 + 一行影片信息。移植自本地看片页，播放源换成 B 站。 */

:root {
    color-scheme: dark;
}

* {
    box-sizing: border-box;
}

html,
body {
    min-height: 100%;
    margin: 0;
}

body {
    background: radial-gradient(1200px 700px at 50% 0%, #1b1b1f 0%, #0b0b0d 60%, #060607 100%);
    color: #ece7dd;
    font-family: "Songti SC", "Source Han Serif SC", "Noto Serif SC", "STSong", "SimSun", serif;
    display: flex;
    flex-direction: column;
    align-items: center;
    min-height: 100vh;
    padding: 60px 22px 82px;
}

/* 顶部两个小链接：返回案例 / 去 B 站 */
.bar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 20px;
    font-family: ui-sans-serif, system-ui, "PingFang SC", "Microsoft YaHei", sans-serif;
    font-size: 12.5px;
    letter-spacing: .04em;
}

.bar a {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: #8d8a84;
    text-decoration: none;
    padding: 6px 10px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, .09);
    transition: color .2s ease, border-color .2s ease, background .2s ease;
}

.bar a:hover {
    color: #ece7dd;
    border-color: rgba(255, 255, 255, .28);
    background: rgba(255, 255, 255, .05);
}

.bar svg {
    width: 14px;
    height: 14px;
}

main {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    /* 空间够时上下居中，内容超出视口时从顶部开始，不会被裁掉 */
    margin: auto 0;
}

.stage {
    /* 宽度同时受视口高度约束，保证下方的影片信息在首屏内可见 */
    width: min(96vw, 1500px, calc((100vh - 344px) * 16 / 9));
    aspect-ratio: 16 / 9;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 30px 80px rgba(0, 0, 0, .75), 0 0 0 1px rgba(255, 255, 255, .08);
    background: #000;
}

.stage:fullscreen {
    border-radius: 0;
    width: 100vw;
    height: 100vh;
    aspect-ratio: auto;
}

.stage iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
    background: #000;
}

/* 本地 mp4 直接用 video 元素，比例不同时上下留黑边而不是裁切 */
.stage video {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: #000;
}

.meta {
    text-align: center;
    line-height: 1.75;
    width: 100%;
    /* 46em 是阅读舒适宽度上限；加 100% 约束，窄屏时不会顶出视口被裁 */
    max-width: min(46em, 100%);
    padding: 0 4px;
}

.meta h1 {
    font-size: 19px;
    font-weight: 600;
    letter-spacing: .22em;
    margin: 0 0 4px;
}

.meta .sub {
    font-size: 12.5px;
    letter-spacing: .12em;
    color: #7b7871;
    margin: 0 0 10px;
    font-family: ui-sans-serif, system-ui, "PingFang SC", "Microsoft YaHei", sans-serif;
}

.meta p {
    margin: 0;
    font-size: 12.5px;
    color: #8d8a84;
    letter-spacing: .04em;
    font-family: ui-sans-serif, system-ui, "PingFang SC", "Microsoft YaHei", sans-serif;
}

.meta .hint {
    margin-top: 10px;
    font-size: 11.5px;
    color: #5f5d59;
    letter-spacing: .06em;
}

@media (max-width: 720px) {
    body {
        padding: 56px 12px 46px;
        justify-content: flex-start;
        gap: 16px;
    }

    .stage {
        width: 100%;
        border-radius: 10px;
    }

    .bar {
        padding: 10px 12px;
        font-size: 11.5px;
    }

    main {
        margin: 0;
    }

    .meta {
        padding: 0 2px;
    }

    .meta h1 {
        font-size: 16px;
        letter-spacing: .18em;
    }

    .meta p,
    .meta .sub {
        font-size: 11.5px;
        line-height: 1.7;
    }
}

/* 底部版权栏：与 gesture 页的 frame-footer 同一套口径 */
.foot {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 6;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 0 12px;
    background: rgba(6, 6, 7, .94);
    border-top: 1px solid rgba(255, 255, 255, .07);
    color: #6f6d68;
    font-family: ui-sans-serif, system-ui, "PingFang SC", "Microsoft YaHei", sans-serif;
    font-size: 11px;
    letter-spacing: .02em;
    white-space: nowrap;
    overflow: hidden;
}

.foot a {
    color: #8d8a84;
    text-decoration: none;
}

.foot a:hover {
    color: #ece7dd;
}

.foot .sep {
    opacity: .45;
}

.foot .only-mobile {
    display: none;
}

@media (max-width: 720px) {
    .foot {
        height: 24px;
        font-size: 10px;
        gap: 4px;
    }

    .foot .only-desktop {
        display: none;
    }

    .foot .only-mobile {
        display: inline;
    }
}
