body { 
    font-family: 'Noto Serif SC', serif; 
    background-color: #000; 
    color: #7f1d1d; 
    overflow-x: hidden; margin: 0; 
}
.calligraphy { font-family: 'Ma Shan Zheng', cursive; }

#canvas-bg { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 0; }
#content-layer { position: relative; z-index: 10; pointer-events: none; }
.pointer-auto { pointer-events: auto; }

/* Loading Screen */
#loading { 
    position: fixed; top:0; left:0; width:100%; height:100%; 
    background: radial-gradient(circle, #7f1d1d 0%, #000000 100%); 
    color:#fbbf24; display:flex; flex-direction: column; 
    justify-content:center; align-items:center; z-index:999; transition:opacity 1s; 
}

/* Glass UI */
.glass-panel {
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(16px);
    border: 2px solid #fca5a5;
    box-shadow: 0 10px 40px rgba(153, 27, 27, 0.2);
    border-radius: 16px;
    color: #7f1d1d;
}

.btn-gold {
    background: linear-gradient(135deg, #b45309 0%, #d97706 100%);
    color: #fffbeb; border: 2px solid #fcd34d;
    box-shadow: 0 0 20px rgba(245, 158, 11, 0.5); transition: all 0.3s;
}
.btn-gold:hover { transform: scale(1.05); box-shadow: 0 0 30px rgba(245, 158, 11, 0.8); }

/* Couplet Paper Texture */
.paper-red {
    background-color: #b91c1c;
    background-image: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 20.5V18H0v-2h20v-2H0v-2h20v-2H0V8h20V6H0V4h20V2H0V0h22v20h2V0h2v20h2V0h2v20h2V0h2v20h2v2H22v20h-2V22h-2v20h-2V22h-2v20h-2V22h-2v20H0v-2h20v-2H0v-2h20v-2H0v-2h20z' fill='%237f1d1d' fill-opacity='0.2' fill-rule='evenodd'/%3E%3C/svg%3E");
    color: #fcd34d; border: 4px solid #f59e0b; 
    box-shadow: 0 10px 30px rgba(0,0,0,0.3);
}

/* Chat Window */
.chat-win {
    position: fixed; bottom: 100px; right: 20px; width: 340px; height: 550px;
    background: #fff; border: 3px solid #fca5a5; border-radius: 20px;
    display: none; flex-direction: column; z-index: 50;
    box-shadow: 0 20px 60px rgba(185, 28, 28, 0.3);
}
.chat-win.open { display: flex; animation: slideUp 0.4s cubic-bezier(0.34, 1.56, 0.64, 1); }
@keyframes slideUp { from { transform: translateY(60px) scale(0.9); opacity: 0; } to { transform: translateY(0) scale(1); opacity: 1; } }

/* Immersive Controls */
#immersive-controls {
    position: fixed; bottom: 40px; left: 50%; transform: translateX(-50%);
    z-index: 50; display: none; opacity: 0; transition: opacity 0.5s;
}
#immersive-controls.active { display: flex; opacity: 1; }

body.immersive-mode { overflow: hidden; }
body.immersive-mode #content-layer { opacity: 0; pointer-events: none; transition: opacity 0.5s; }
body.immersive-mode #immersive-controls { display: flex; opacity: 1; }

.section-gap { height: 15vh; }