* { 
    margin: 0; padding: 0; box-sizing: border-box; 
    font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    -webkit-tap-highlight-color: transparent; 
}

html, body {
    height: 100%; width: 100%;
    background-color: #000;
    overflow: hidden;
}

body {
    display: flex;
    justify-content: center;
    align-items: center;
}

.wrapper {
    width: 100%;
    max-width: 450px; 
    height: 100%;
    max-height: 100vh;
    background: #000;
    position: relative;
    overflow: hidden;
}

.overlay { 
    position: absolute; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.96); z-index: 1000; 
    display: flex; align-items: center; justify-content: center; padding: 20px;
}
.verification-modal { 
    background: #111; padding: 45px 30px; border-radius: 30px; border: 1px solid #ff0055; 
    text-align: center; width: 100%; max-width: 340px;
    box-shadow: 0 0 30px rgba(255, 0, 85, 0.3);
}
.age-circle { 
    width: 90px; height: 90px; border: 3px solid #ff0055; border-radius: 50%; 
    display: flex; align-items: center; justify-content: center; 
    margin: 0 auto 30px; font-weight: 900; font-size: 28px; color: #ff0055;
}
.buttons { display: flex; gap: 15px; }
.buttons button { 
    background: #222; border: 1px solid #444; font-size: 35px; 
    padding: 15px; border-radius: 20px; cursor: pointer; flex: 1; color: white;
}

#main-content { height: 100%; width: 100%; transition: filter 0.6s; }
body:not(.age-confirmed) #main-content { filter: blur(25px); pointer-events: none; }

.step {
    display: none; position: absolute; top: 0; left: 0; width: 100%; height: 100%;
    flex-direction: column;
}

.video-container { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 1; }
.video { width: 100%; height: 100%; object-fit: cover; }

.bottom-panel {
    position: absolute; bottom: 0; left: 0; width: 100%;
    height: 200px; 
    background: rgba(10, 10, 10, 0.95);
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    display: flex; flex-direction: column;
    z-index: 10;
}

.text-box { 
    width: 100%; 
    flex: 1; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    text-align: center;
    padding: 0 25px;
}
.text-box p { 
    font-size: 30px; line-height: 1.3; font-weight: 600; color: #fff; 
}

.button-group { 
    display: flex; gap: 12px; width: 100%; 
    margin-top: auto;
    margin-bottom: 30px; 
    padding: 0 25px;
}

.btn { 
    flex: 1; height: 54px; border-radius: 30px; border: none; font-weight: 800; 
    text-transform: uppercase; cursor: pointer; display: flex; align-items: center; 
    justify-content: center; text-decoration: none; font-size: 16px; 
}
.btn-1 { background: #ff0055; color: #fff; box-shadow: 0 5px 20px rgba(255,0,85,0.4); }
.btn-2 { background: #333; color: #fff; }

.final-title { 
    font-size: 42px; font-weight: 900; color: #fff;
    text-shadow: 0 0 30px #ff0055, 0 0 10px rgba(0,0,0,0.5); 
}

#final-controls {
    position: relative;
    width: 100%;
    height: 100%;
}

#final-controls .text-box {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100px; 
    display: flex;
    align-items: center;
    justify-content: center;
}

#final-controls .button-group {
    position: absolute;
    bottom: 25px; 
    left: 25px;
    right: 25px;
    width: auto;
    margin-bottom: 0;
    padding: 0;
}

.header { position: absolute; top: 0; width: 100%; padding: 25px 20px; text-align: center; z-index: 100; }
.logo { 
    color: #ff0055; font-weight: 900; text-transform: uppercase; letter-spacing: 4px; font-size: 28px;
    text-shadow: 0 0 15px rgba(255, 0, 85, 0.5);
}

.girl-info { position: absolute; bottom: 215px; left: 20px; z-index: 5; }
.geo-wrap { background: rgba(0,0,0,0.7); padding: 5px 12px; border-radius: 6px; font-size: 13px; color: #fff; }
.nikname { color: #fff; font-weight: 700; font-size: 15px; text-shadow: 1px 1px 2px #000; margin-top: 4px; }

.loader-overlay { position: absolute; top: 45%; left: 0; width: 100%; text-align: center; z-index: 50; }
#loader-text { color: #fff; font-size: 22px; font-weight: 700; text-shadow: 0 2px 10px #000; margin-top: 15px; display: block; }
.spinner { width: 60px; height: 60px; border: 5px solid rgba(255,255,255,0.1); border-top: 5px solid #ff0055; border-radius: 50%; margin: 0 auto; animation: spin 1s linear infinite; }
@keyframes spin { 100% { transform: rotate(360deg); } }

.progress-wrap { width: 100%; max-width: 280px; margin: 20px auto 0; }
.progress-bar { width: 100%; height: 8px; background: rgba(255,255,255,0.1); border-radius: 10px; overflow: hidden; }
.progress-fill { width: 0%; height: 100%; background: #ff0055; transition: width 2.5s linear; }

.fade-up { opacity: 0; transform: translateY(20px); transition: 0.8s ease; }
.fade-up.visible { opacity: 1; transform: translateY(0); }
.pulse { animation: pulse 2s infinite; }
@keyframes pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.04); } }