/**
 * index.css —— 青莲居主页（水墨重构版）
 * 月夜 · 竹影 · 举杯对月：SVG 写意墨竹 / 宣纸诗卷 / 水墨李白剪影 / 雾与远山
 */

* { margin: 0; padding: 0; box-sizing: border-box; }

html, body { overflow-x: hidden; max-width: 100%; }

/* 背景：夜色渐变 */
body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    background: linear-gradient(#141b33 0%, #0a0f25 55%, #070b1c 100%);
    font-family: var(--font-display), serif;
    color: var(--moonlight);
    position: relative;
}

/* ======== 星空 ======== */
.stars {
    position: fixed;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
    z-index: 0;
}
.star {
    position: absolute;
    background-color: #fff;
    border-radius: 50%;
    animation: twinkle 5s infinite;
}
@keyframes twinkle {
    0%, 100% { opacity: 0.25; }
    50% { opacity: 1; }
}

/* ======== 水墨远山 ======== */
.mountains {
    position: fixed;
    left: 0; right: 0; bottom: 0;
    height: 40vh;
    z-index: 1;
    pointer-events: none;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1440' height='420' viewBox='0 0 1440 420' preserveAspectRatio='xMidYMax slice'><path d='M0 420 L0 300 L150 180 L320 310 L500 130 L680 300 L860 190 L1030 310 L1200 150 L1370 290 L1440 250 L1440 420 Z' fill='%230a1226' opacity='0.5'/><path d='M0 420 L0 340 L220 240 L460 350 L700 250 L960 355 L1220 260 L1440 350 L1440 420 Z' fill='%2308101f' opacity='0.55'/><path d='M0 420 L0 380 L280 310 L560 385 L880 320 L1160 390 L1440 330 L1440 420 Z' fill='%23060a15' opacity='0.6'/></svg>");
    background-size: cover;
    background-position: bottom center;
}

/* 雾带 */
.mist {
    position: fixed;
    left: -20%;
    height: 90px;
    z-index: 2;
    pointer-events: none;
    border-radius: 50%;
    background: radial-gradient(ellipse at center, rgba(200, 215, 235, 0.07), transparent 70%);
    filter: blur(6px);
}
.mist-1 { bottom: 16vh; width: 140%; animation: mistFlow 46s ease-in-out infinite alternate; }
.mist-2 { bottom: 30vh; width: 120%; opacity: 0.7; animation: mistFlow 64s ease-in-out infinite alternate-reverse; }
@keyframes mistFlow {
    from { transform: translateX(-6%); }
    to { transform: translateX(6%); }
}

/* ======== 明月 ======== */
.moon-wrap {
    position: fixed;
    top: 9%;
    right: 12%;
    width: clamp(84px, 12vw, 130px);
    height: clamp(84px, 12vw, 130px);
    z-index: 6;
    cursor: pointer;
    transition: transform 0.3s;
    filter: drop-shadow(0 0 34px rgba(253, 240, 168, 0.5));
    animation: moon-breathe 7s ease-in-out infinite alternate;
}
.moon-wrap:hover { transform: scale(1.08); }
.moon-svg { width: 100%; height: 100%; }
@keyframes moon-breathe {
    from { filter: drop-shadow(0 0 26px rgba(253, 240, 168, 0.42)); }
    to { filter: drop-shadow(0 0 44px rgba(253, 240, 168, 0.62)); }
}
.moon-hint {
    position: absolute;
    left: 50%;
    top: calc(100% + 16px);
    transform: translateX(-50%);
    font-size: 0.85rem;
    letter-spacing: 4px;
    color: rgba(253, 246, 227, 0.7);
    text-shadow: 0 1px 6px rgba(0, 0, 0, 0.8);
    white-space: nowrap;
}

/* 云 */
.cloud {
    position: fixed;
    width: 300px;
    height: 40px;
    z-index: 3;
    pointer-events: none;
    background: radial-gradient(ellipse at 30% 50%, rgba(210, 220, 240, 0.14), transparent 65%),
                radial-gradient(ellipse at 70% 50%, rgba(210, 220, 240, 0.11), transparent 65%);
    filter: blur(4px);
}
.cloud-1 { top: 13%; left: -15%; animation: drift 70s linear infinite; }
.cloud-2 { top: 24%; left: -30%; width: 360px; animation: drift 110s linear infinite 25s; }
@keyframes drift {
    from { transform: translateX(0); }
    to { transform: translateX(150vw); }
}

/* ======== 墨竹背景（左右两丛） ======== */
.bamboo-grove {
    position: fixed;
    bottom: 0;
    width: 240px;
    z-index: 1;
    pointer-events: none;
}
.bamboo-grove svg {
    width: 100%;
    height: auto;
    transform-origin: bottom center;
    animation: bambooSway 9s ease-in-out infinite alternate;
}
.bamboo-left { left: -24px; }
.bamboo-right { right: -30px; opacity: 0.8; animation-delay: -4s; }
.bamboo-left svg { animation-duration: 11s; }
@keyframes bambooSway {
    from { transform: rotate(-1.2deg); }
    to { transform: rotate(1.2deg); }
}
/* SVG 竹竿渐变定义（依赖内联 defs） */
.bamboo-left svg defs linearGradient#bk1 { display: none; }
.bamboo-right svg defs linearGradient#bk2 { display: none; }

/* ======== 前景灯笼竹 ======== */
.lantern-pole {
    position: fixed;
    left: 2.5%;
    bottom: 0;
    width: 12px;
    height: 78vh;
    z-index: 7;
    pointer-events: none;
}
.pole {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, #2c5a2c, #4a8a44 40%, #2c5a2c 78%, #1e4020);
    border-radius: 8px 8px 0 0;
    box-shadow: 0 0 18px rgba(40, 90, 45, 0.35);
}
.pole::before, .pole::after {
    content: '';
    position: absolute;
    left: 0;
    width: 100%;
    height: 16px;
    background: #245024;
    border-radius: 5px;
}
.pole::before { top: 30%; }
.pole::after { top: 62%; }

.lantern {
    position: absolute;
    top: 6%;
    left: 50%;
    transform: translateX(-50%);
    width: 46px;
    height: 58px;
    z-index: 2;
    animation: lanternShake 4s ease-in-out infinite;
}
.lantern::before {
    content: '';
    position: absolute;
    top: -10px;
    left: 50%;
    transform: translateX(-50%);
    width: 24px;
    height: 12px;
    background: #8a3a12;
    border-radius: 3px;
}
.lantern-glow {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 50% 42%, #ffe98a, #f0b429 72%);
    border-radius: 14px 14px 7px 7px;
    box-shadow: 0 0 26px 8px rgba(240, 180, 41, 0.6);
}
.tassel {
    position: absolute;
    bottom: -26px;
    left: 50%;
    transform: translateX(-50%);
    width: 18px;
    height: 12px;
    background: #c0392b;
    border-radius: 0 0 9px 9px;
}
.tassel::after {
    content: '';
    position: absolute;
    top: -8px;
    left: 50%;
    transform: translateX(-50%);
    width: 2px;
    height: 9px;
    background: #c0392b;
}
@keyframes lanternShake {
    0%, 100% { transform: translateX(-50%) rotate(0deg); }
    50% { transform: translateX(-52%) rotate(2.4deg); }
}

/* 酒旗 */
.wine-flag {
    position: absolute;
    top: 23%;
    left: calc(50% + 14px);
    width: 62px;
    height: 42px;
    background: linear-gradient(160deg, #d93a2b, #a32217);
    border-radius: 3px;
    transform: rotate(-9deg);
    box-shadow: 0 0 12px rgba(217, 58, 43, 0.55);
    animation: flagWave 3s ease-in-out infinite;
    cursor: pointer;
    transition: transform 0.3s;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: auto;
}
.wine-flag:hover { transform: rotate(-9deg) scale(1.08); }
.flag-text {
    font-size: 20px;
    color: #ffe98a;
    font-weight: bold;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}
@keyframes flagWave {
    0%, 100% { transform: rotate(-9deg); }
    50% { transform: rotate(-3deg) scaleX(1.06); }
}

/* ======== 顶部导航 ======== */
.home-nav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 120;
    display: flex;
    align-items: center;
    gap: 2.2rem;
    padding: 1rem 2.2rem;
    background: linear-gradient(rgba(10, 15, 37, 0.55), transparent);
}
.home-nav .nav-brand {
    color: var(--moonlight);
    font-size: 1.4rem;
    letter-spacing: 5px;
    text-shadow: 0 0 12px rgba(253, 246, 227, 0.35);
}
.home-nav .brand-seal {
    background: var(--cinnabar);
    box-shadow: 0 0 12px rgba(176, 58, 46, 0.5);
}
.home-nav .nav-links { margin-left: auto; }
.home-nav .nav-links a { color: rgba(253, 246, 227, 0.82); }
.home-nav .nav-links a:hover { color: var(--gold); }

/* ======== 今日诗签 ======== */
.fortune {
    position: fixed;
    left: 12%;
    top: 17%;
    z-index: 8;
    display: flex;
    align-items: flex-end;
    cursor: pointer;
    transition: transform 0.3s;
}
.fortune:hover { transform: translateY(-4px) rotate(-2deg); }
.fortune-stick {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 96px;
    background: linear-gradient(180deg, #6e4418, #c98d4b 40%, #8a5a28 85%, #5e3a16);
    border-radius: 6px 6px 4px 4px;
    color: rgba(112, 30, 20, 0.8);
    font-size: 1.05rem;
    font-family: var(--font-display);
    box-shadow: 0 5px 12px rgba(0, 0, 0, 0.45);
}
.fortune-card {
    margin-left: 8px;
    background:
        var(--grain-dark),
        linear-gradient(160deg, rgba(26, 38, 30, 0.92), rgba(12, 22, 16, 0.94));
    border: 1px solid rgba(170, 140, 90, 0.55);
    border-left: 3px solid var(--gold);
    border-radius: 6px;
    padding: 0.5rem 0.75rem;
    display: flex;
    flex-direction: column;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4);
    min-width: 92px;
}
.fortune-label { color: var(--gold); font-size: 0.72rem; letter-spacing: 4px; margin-bottom: 2px; }
.fortune-poem {
    font-family: var(--font-display);
    font-size: 0.95rem;
    letter-spacing: 1px;
    color: var(--moonlight);
}

/* ======== 宣纸诗卷（灯下展卷） ======== */
.poem-scroll {
    position: relative;
    margin-top: 13vh;
    width: min(90vw, 720px);
    z-index: 10;
    background:
        var(--grain-light),
        linear-gradient(168deg, #fdfaf0 0%, #f3ead4 55%, #eadfc4 100%);
    border: 1px solid rgba(190, 170, 120, 0.8);
    border-radius: 6px;
    padding: 1.6rem 1.8rem 1.7rem;
    box-shadow:
        0 24px 60px rgba(0, 0, 0, 0.55),
        0 0 40px rgba(253, 240, 168, 0.1),
        inset 0 0 60px rgba(140, 110, 60, 0.12);
    color: var(--ink);
}
/* 纸缘微焦（做旧） */
.poem-scroll::before {
    content: '';
    position: absolute;
    inset: 6px;
    border: 1px solid rgba(150, 125, 80, 0.35);
    border-radius: 4px;
    pointer-events: none;
}
.scroll-rod {
    position: absolute;
    left: -14px;
    right: -14px;
    height: 14px;
    border-radius: 8px;
    background: linear-gradient(180deg, #8a5a28, #5e3a16 45%, #8a5a28);
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.6);
    z-index: 2;
}
.scroll-rod::after {
    content: '';
    position: absolute;
    top: 3px;
    left: 3px;
    right: 3px;
    height: 3px;
    border-radius: 3px;
    background: rgba(255, 220, 150, 0.35);
}
.rod-top { top: -9px; }
.rod-bottom { bottom: -9px; }

.poem-head { text-align: center; margin-bottom: 0.9rem; }
.poem-title {
    font-size: clamp(1.8rem, 4.2vw, 2.5rem);
    font-weight: 400;
    color: var(--ink);
    letter-spacing: 6px;
    text-shadow: 2px 2px 0 rgba(120, 90, 40, 0.12);
}
.poem-meta {
    margin-top: 0.4rem;
    color: var(--ink-soft);
    font-size: 0.92rem;
    letter-spacing: 2px;
    font-family: var(--font-serif);
}
.poem-dot { margin: 0 6px; color: var(--cinnabar); }
.poem-cat {
    display: inline-block;
    padding: 0.05rem 0.7rem;
    border: 1px solid var(--cinnabar);
    border-radius: 999px;
    font-size: 0.8rem;
    color: var(--cinnabar);
}

/* 竖排正文（墨字）：vertical-rl 下 flex 轴反转，column = 水平主轴（从右到左换列） */
.poem-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    writing-mode: vertical-rl;
    text-orientation: upright;
    max-height: 40vh;
    width: 100%;              /* vertical 模式块宽 auto 会收缩，需显式撑满 */
    padding: 0.5rem 0.8rem 0.4rem;
    column-gap: 0;
}
.poem-content .poem-line {
    margin-left: clamp(8px, 1.4vw, 20px);
    flex: none;
}
.poem-content .poem-line:first-child { margin-left: 0; }
.poem-line {
    font-size: clamp(16px, 2.05vw, 27px);
    line-height: 1.5;
    color: #241d18;
    letter-spacing: 2px;
    white-space: nowrap;
    opacity: 0;
    transform: translateY(14px);
    animation: fadeInUp 0.8s ease forwards;
}
.poem-line:nth-child(1) { animation-delay: 0.12s; }
.poem-line:nth-child(2) { animation-delay: 0.24s; }
.poem-line:nth-child(3) { animation-delay: 0.36s; }
.poem-line:nth-child(4) { animation-delay: 0.48s; }
.poem-line:nth-child(5) { animation-delay: 0.6s; }
.poem-line:nth-child(6) { animation-delay: 0.72s; }
.poem-line:nth-child(7) { animation-delay: 0.84s; }
.poem-line:nth-child(n+8) { animation-delay: 0.96s; }
@keyframes fadeInUp {
    to { opacity: 1; transform: translateY(0); }
}
/* 逐字墨现 */
.poem-line .ch {
    opacity: 0;
    animation: charIn 0.38s ease forwards;
}
@keyframes charIn {
    to { opacity: 1; }
}

/* 题解与译文（墨色小字 + 淡红框分层） */
.poem-note, .poem-trans {
    margin: 0.8rem auto 0;
    max-width: 88%;
    text-align: center;
    font-family: var(--font-serif);
    font-size: 0.97rem;
    line-height: 1.85;
    color: var(--ink-2);
    letter-spacing: 1px;
    background: rgba(176, 58, 46, 0.05);
    border: 1px dashed rgba(176, 58, 46, 0.3);
    border-radius: 4px;
    padding: 0.5rem 1rem;
    animation: fadeInUp 0.8s ease 1s both;
}
.poem-note::before { content: '〔题解〕'; color: var(--cinnabar); font-weight: bold; margin-right: 4px; }
.poem-trans::before { content: '〔白话〕'; color: var(--cinnabar); font-weight: bold; margin-right: 4px; }

/* 卷内印章 */
.poem-seal {
    position: absolute;
    right: 20px;
    bottom: 30px;
    width: 46px;
    height: 46px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--cinnabar);
    color: #f7ead6;
    font-size: 1.05rem;
    border-radius: 4px;
    transform: rotate(-6deg);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
    animation: sealPop 0.6s ease 1.3s both;
    z-index: 3;
}
@keyframes sealPop {
    from { opacity: 0; transform: rotate(-6deg) scale(0.4); }
    to { opacity: 1; transform: rotate(-6deg) scale(1); }
}

/* ======== 控制条 ======== */
.poem-controls {
    margin-top: 2.6rem;
    z-index: 10;
    display: flex;
    gap: 9px;
    flex-wrap: wrap;
    justify-content: center;
    padding: 0 1rem 2.4rem;
}
.ctl-btn {
    padding: 0.45rem 1.1rem;
    background: rgba(20, 30, 22, 0.75);
    border: 1px solid rgba(201, 168, 106, 0.55);
    border-radius: 4px;
    color: #fdf6e3;
    font-family: var(--font-display);
    font-size: 0.95rem;
    letter-spacing: 3px;
    cursor: pointer;
    transition: all 0.25s;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.6);
}
.ctl-btn:hover {
    background: rgba(176, 58, 46, 0.75);
    border-color: var(--cinnabar);
    transform: translateY(-2px);
}
.ctl-btn.on { background: var(--cinnabar); border-color: var(--cinnabar); }

/* ======== 李白 · 水墨剪影（场景人物，位于诗卷之后） ======== */
.libai {
    position: fixed;
    right: 4%;
    bottom: 0;
    width: clamp(130px, 16vw, 190px);
    z-index: 4;
    filter: drop-shadow(0 12px 22px rgba(0, 0, 0, 0.5)) drop-shadow(0 0 26px rgba(40, 70, 45, 0.3));
    animation: float 6s ease-in-out infinite;
    pointer-events: none;
    opacity: 0.96;
}
.libai-svg { width: 100%; height: auto; }
@keyframes float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-9px); }
}

/* ======== 名句落款 ======== */
.intro-text {
    position: fixed;
    left: 5%;
    bottom: 26%;
    max-width: 30%;
    z-index: 7;
    font-size: 1.08rem;
    line-height: 1.9;
    color: rgba(253, 246, 227, 0.85);
    letter-spacing: 2px;
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.8);
    transition: opacity 0.6s;
    animation: fadeInUp 1s ease 0.4s both;
}
.intro-text::before {
    content: '〄';
    margin-right: 8px;
    color: var(--gold);
}

/* ======== 水墨印章（左下，不与李白/诗卷冲突） ======== */
.seal {
    position: fixed;
    left: 4%;
    bottom: 4.5%;
    width: 72px;
    height: 72px;
    background: rgba(176, 58, 46, 0.82);
    border-radius: 5px;
    transform: rotate(5deg);
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 1.25rem;
    color: #f7ead6;
    font-weight: bold;
    opacity: 0.9;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.55), 0 0 0 6px rgba(10, 15, 37, 0.25);
    z-index: 8;
    cursor: pointer;
    transition: all 0.3s;
}
.seal::before {
    content: '';
    position: absolute;
    width: 86%;
    height: 86%;
    border: 2px solid #f7ead6;
    border-radius: 2px;
}
.seal:hover { transform: rotate(5deg) scale(1.08); opacity: 1; box-shadow: 0 8px 24px rgba(176, 58, 46, 0.5); }

/* ======== 音效与进度 ======== */
.sound-btn {
    position: fixed;
    top: 4.6rem;
    right: 1.4rem;
    z-index: 130;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.05rem;
    color: rgba(253, 246, 227, 0.85);
    background: rgba(20, 30, 22, 0.6);
    border: 1px solid rgba(201, 168, 106, 0.6);
    cursor: pointer;
    transition: all 0.3s;
}
.sound-btn:hover { border-color: var(--gold); color: var(--gold); }
.sound-btn.on {
    background: rgba(176, 58, 46, 0.8);
    border-color: var(--cinnabar);
    box-shadow: 0 0 16px rgba(176, 58, 46, 0.5);
}
.poem-count {
    position: fixed;
    top: 5rem;
    right: 4.6rem;
    z-index: 130;
    font-size: 0.95rem;
    color: rgba(253, 246, 227, 0.75);
    letter-spacing: 2px;
    font-family: var(--font-serif);
    text-shadow: 0 1px 6px rgba(0, 0, 0, 0.8);
}

/* ======== 页脚备案（流内，浅色可读） ======== */
.home-footer {
    margin-top: auto;
    width: 100%;
    padding: 0.8rem 1rem 1.1rem;
    text-align: center;
    z-index: 5;
}
.home-footer a {
    display: inline-block;
    font-size: 13px;
    letter-spacing: 1px;
    color: rgba(220, 226, 240, 0.85);
    background: rgba(10, 15, 37, 0.55);
    border: 1px solid rgba(201, 168, 106, 0.35);
    border-radius: 999px;
    padding: 0.22rem 1rem;
    text-decoration: none;
    transition: all 0.25s;
}
.home-footer a:hover { color: var(--gold); border-color: var(--gold); }

/* ======== 竹叶 ======== */
.falling-leaf {
    position: absolute;
    width: 22px;
    height: 6px;
    background: linear-gradient(to right, #3a6b30, #5c8a4e);
    border-radius: 0 50% 50% 0;
    transform-origin: left center;
    filter: drop-shadow(2px 2px 3px rgba(0, 0, 0, 0.35));
    pointer-events: none;
    z-index: 9;
}
@keyframes leaf-fall {
    0% { transform: translateY(-100px) rotate(0deg); opacity: 0; }
    10% { opacity: 1; }
    90% { opacity: 0.85; }
    100% { transform: translateY(105vh) rotate(360deg); opacity: 0; }
}

/* ======== 流星 ======== */
.shooting-star {
    position: fixed;
    width: 130px;
    height: 2px;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.95), transparent);
    border-radius: 2px;
    filter: drop-shadow(0 0 8px rgba(255, 255, 255, 0.7));
    pointer-events: none;
    z-index: 3;
    opacity: 0;
}
.shooting-star::before {
    content: '';
    position: absolute;
    top: -1.5px;
    left: 0;
    width: 5px;
    height: 5px;
    background: #fff;
    border-radius: 50%;
    box-shadow: 0 0 14px 5px rgba(255, 255, 255, 0.55);
}
@keyframes shoot {
    0% { transform: translate(0, 0) rotate(-38deg); opacity: 0; }
    6% { opacity: 1; }
    60% { opacity: 1; }
    100% { transform: translate(-62vw, 48vh) rotate(-38deg); opacity: 0; }
}

/* ======== 月光涟漪 ======== */
.moon-ripple {
    position: fixed;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(253, 240, 168, 0.3) 0%, rgba(0, 0, 0, 0) 70%);
    pointer-events: none;
    z-index: 9999;
}

/* ======== 响应式 ======== */
@media (max-width: 900px) {
    .intro-text { max-width: 42%; font-size: 0.98rem; }
    .bamboo-grove { width: 170px; }
    .lantern-pole { left: 2%; }
    .fortune { left: 14%; }
}
@media (max-width: 768px) {
    .home-nav { padding: 0.7rem 1rem; gap: 1rem; }
    .home-nav .nav-brand { font-size: 1.1rem; letter-spacing: 2px; }
    .home-nav .nav-links a { font-size: 0.9rem; }
    .poem-scroll { margin-top: 10vh; padding: 1.1rem 1rem 1.2rem; }
    .poem-controls { margin-top: 1.8rem; }
    .scroll-rod { left: -7px; right: -7px; }
    .poem-content { max-height: 38vh; gap: 6px; }
    .poem-line { font-size: clamp(14px, 2.4vw, 20px); }
    .libai { right: 2%; width: 120px; opacity: 0.92; }
    .moon-wrap { right: 6%; }
    .fortune { display: none; }
    .wine-flag { left: calc(50% + 10px); transform: rotate(-9deg) scale(0.85); }
    .seal { left: 3%; bottom: 8%; width: 62px; height: 62px; font-size: 1.1rem; }
    .intro-text { left: 4%; max-width: 34%; font-size: 0.9rem; bottom: 26%; }
    .poem-count { display: none; }
    .sound-btn { top: 4.2rem; }
    .bamboo-right { right: -60px; }
    .bamboo-left { left: -60px; }
}
@media (max-width: 480px) {
    .poem-scroll { margin-top: 9vh; width: 94vw; }
    .poem-title { font-size: 1.5rem; letter-spacing: 3px; }
    .poem-content { max-height: 34vh; }
    .poem-note, .poem-trans { font-size: 0.82rem; }
    .libai { right: 0.5%; width: 76px; opacity: 0.55; }
    .moon-wrap { top: 12%; right: 5%; }
    .sound-btn { top: 3.9rem; right: 1rem; width: 38px; height: 38px; }
    .intro-text { display: none; }
    .wine-flag { display: none; }
    .ctl-btn { padding: 0.38rem 0.8rem; font-size: 0.88rem; }
    .poem-controls { gap: 6px; margin-top: 1.4rem; padding-bottom: 1.4rem; }
    body { padding-bottom: env(safe-area-inset-bottom, 0px); }
}
