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

body, html {
    width: 100%; height: 100%; 
    background-color: #ffffff; 
    overflow: hidden;
    font-family: 'Helvetica Neue', Helvetica, Arial, 'Microsoft YaHei', sans-serif;
    -webkit-tap-highlight-color: transparent;
    user-select: none;
}

#webgl-container { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 1; }

#ui-layer {
    position: absolute; top: 0; left: 0; width: 100%; height: 100%;
    z-index: 10; display: flex; justify-content: center; align-items: center;
    perspective: 2000px; 
    pointer-events: none;
}

.card-tilt-wrapper { transition: transform 0.1s ease-out; transform-style: preserve-3d; }

.glass-card {
    background: rgba(255, 255, 255, 0.5); 
    backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px);
    border: 1px solid rgba(255, 255, 255, 0.8);
    border-radius: 24px; padding: 45px 35px; width: 85vw; max-width: 400px;
    box-shadow: 0 25px 50px rgba(0, 0, 0, 0.05); 
    pointer-events: auto; opacity: 0; transform: translateZ(50px) rotateY(-10deg); 
}

.title { color: #ff6b81; font-size: 28px; margin-bottom: 20px; letter-spacing: 3px; text-shadow: 0 0 10px rgba(255, 107, 129, 0.2); text-align: center; }

.short-text-assemble {
    color: #333; 
    font-size: 20px; line-height: 1.8; letter-spacing: 2px;
    font-weight: 500; text-align: center; min-height: 80px;
}
.char-unit { display: inline-block; } 

.btn-wrapper { margin-top: 35px; opacity: 0; text-align: center;}
.rainbow-btn {
    position: relative; display: inline-block; padding: 16px 45px; border: none; border-radius: 50px;
    background: linear-gradient(45deg, #ff9a9e, #fad0c4, #fad0c4, #a1c4fd, #ff9a9e);
    background-size: 300% auto;
    color: white; font-size: 18px; font-weight: bold; letter-spacing: 3px;
    overflow: hidden; outline: none; cursor: pointer;
    box-shadow: 0 10px 20px rgba(255, 154, 158, 0.2);
    transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
    animation: gradientMove 4s infinite linear;
}
.rainbow-btn:active { transform: scale(0.96) translateY(2px); box-shadow: 0 5px 10px rgba(255, 154, 158, 0.1); }
@keyframes gradientMove { 0% { background-position: 0% 50%; } 100% { background-position: 300% 50%; } }

.success-msg { display: none; text-align: center; }
.success-msg h1 { color: #ff6b81; font-size: 32px; margin-bottom: 15px; text-shadow: 0 0 15px rgba(255, 107, 129, 0.3); }
.success-msg p { color: #555; font-size: 18px; letter-spacing: 1px;}