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

body {
    background: #0d0006;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Press Start 2P', monospace;
    overflow: hidden;
    position: relative;
}

body::after {
    content: '';
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: repeating-linear-gradient(
        0deg,
        transparent,
        transparent 2px,
        rgba(0, 0, 0, 0.12) 2px,
        rgba(0, 0, 0, 0.12) 4px
    );
    pointer-events: none;
    z-index: 100;
}

#stars {
    position: fixed;
    top: 0; left: 0;
    width: 100%; height: 100%;
    pointer-events: none;
    z-index: 0;
}

.container {
    position: relative;
    z-index: 1;
    text-align: center;
    padding: 20px;
    width: 100%;
    max-width: 700px;
}

.frame {
    border: 4px solid #ffb7c5;
    padding: 40px 50px;
    position: relative;
    box-shadow:
        0 0 12px #ffb7c5,
        0 0 30px #ffb7c580,
        0 0 70px #ffb7c530,
        inset 0 0 20px #ffb7c510;
    background: rgba(13, 0, 6, 0.85);
}

.corner {
    position: absolute;
    width: 14px;
    height: 14px;
    background: #ffb7c5;
    box-shadow: 0 0 8px #ffb7c5, 0 0 16px #ff69b4;
}
.corner.tl { top: -4px; left: -4px; }
.corner.tr { top: -4px; right: -4px; }
.corner.bl { bottom: -4px; left: -4px; }
.corner.br { bottom: -4px; right: -4px; }

h1 {
    font-size: clamp(1.4rem, 5vw, 2.8rem);
    color: #ffb7c5;
    text-shadow:
        0 0 8px #ffb7c5,
        0 0 20px #ffb7c5,
        0 0 40px #ff69b4,
        0 0 80px #ff1493;
    letter-spacing: 3px;
    margin-bottom: 18px;
    animation: flicker 6s infinite;
    word-break: break-all;
}

.cursor {
    display: inline-block;
    width: 3px;
    height: 1em;
    background: #ffb7c5;
    animation: blink 1s step-end infinite;
    box-shadow: 0 0 8px #ffb7c5;
    vertical-align: -0.1em;
    margin-left: 4px;
}

@keyframes blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0; }
}

@keyframes flicker {
    0%, 93%, 95%, 97%, 100% { opacity: 1; }
    94% { opacity: 0.7; }
    96% { opacity: 0.85; }
    98% { opacity: 0.6; }
}

.email {
    font-size: clamp(0.45rem, 1.8vw, 0.7rem);
    color: #ffb7c5;
    opacity: 0.8;
    letter-spacing: 2px;
    text-shadow: 0 0 10px #ffb7c5, 0 0 20px #ff69b4;
    margin-bottom: 10px;
}

.divider {
    width: 100%;
    height: 2px;
    background: linear-gradient(to right, transparent, #ffb7c5, transparent);
    margin: 28px 0;
    box-shadow: 0 0 6px #ffb7c5;
}

.flags {
    display: flex;
    gap: clamp(12px, 3vw, 24px);
    justify-content: center;
    flex-wrap: wrap;
}

.flag {
    width: clamp(80px, 18vw, 120px);
    height: clamp(54px, 12vw, 80px);
    border: 3px solid #ffb7c5;
    box-shadow:
        0 0 8px #ffb7c5,
        0 0 18px #ffb7c550;
    image-rendering: pixelated;
    overflow: hidden;
    flex-shrink: 0;
}

.pride-flag {
    display: flex;
    flex-direction: column;
}
.pride-flag .s { flex: 1; }
.pride-flag .s1 { background: #E40303; }
.pride-flag .s2 { background: #FF8C00; }
.pride-flag .s3 { background: #FFED00; }
.pride-flag .s4 { background: #008026; }
.pride-flag .s5 { background: #004DFF; }
.pride-flag .s6 { background: #750787; }

.trans-flag {
    display: flex;
    flex-direction: column;
}
.trans-flag .t { flex: 1; }
.trans-flag .t1 { background: #55CDFC; }
.trans-flag .t2 { background: #F7A8B8; }
.trans-flag .t3 { background: #FFFFFF; }
.trans-flag .t4 { background: #F7A8B8; }
.trans-flag .t5 { background: #55CDFC; }

@media (max-width: 360px) {
    .frame {
        padding: 24px 20px;
    }
    .flags {
        gap: 10px;
    }
}
