

.public-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 100px 20px 50px 20px;
    min-height: 80vh;
}

.page-header { text-align: center; margin-bottom: 50px; }
.subtitle { font-family: 'Special Elite'; color: #666; letter-spacing: 2px; margin-top: 10px; }
.gold { color: var(--color-gold); }


.gallery-grid {
    display: columns;
    columns: 3 300px;
    gap: 15px;
}

.gallery-item {
    break-inside: avoid;
    margin-bottom: 15px;
    position: relative;
    cursor: pointer;
    overflow: hidden;
    border: 1px solid #333;
}
.gallery-item img { width: 100%; display: block; transition: 0.5s; }
.gallery-item:hover img { transform: scale(1.05); filter: grayscale(100%); }
.gallery-item .overlay {
    position: absolute; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.5); opacity: 0; transition: 0.3s;
    display: flex; align-items: center; justify-content: center;
}
.gallery-item:hover .overlay { opacity: 1; }
.gallery-item .icon { font-size: 2rem; color: #fff; }


.memoriam-bg { background-color: #000; }
.memoriam-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 40px; }

.fallen-card { text-align: center; width: 250px; }
.fallen-photo { position: relative; margin-bottom: 15px; border: 5px solid #222; }
.fallen-photo img { width: 100%; height: 300px; object-fit: cover; }
.ribbon {
    position: absolute; bottom: 10px; right: -10px;
    background: #000; color: #fff; padding: 5px 15px; font-family: 'Rye';
    border: 1px solid #444;
}
.fallen-card h3 { font-family: 'Rye'; color: #888; margin-bottom: 5px; }
.fallen-rank { font-family: 'Special Elite'; color: #444; text-transform: uppercase; }
.fallen-quote { font-style: italic; color: #333; margin-top: 10px; }

.empty-memoriam { text-align: center; border: 1px dashed #333; padding: 50px; color: #555; width: 100%; }


.section-divider {
    font-family: 'Rye'; color: #fff; border-bottom: 2px solid #333;
    padding-bottom: 10px; margin: 40px 0 20px 0; font-size: 1.5rem;
}

.roster-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 20px;
}

.roster-card {
    background: #111; border: 1px solid #222; text-decoration: none;
    transition: 0.3s;
}
.roster-card:hover { border-color: var(--color-gold); transform: translateY(-5px); }

.roster-img { width: 100%; height: 250px; object-fit: cover; filter: grayscale(100%); transition: 0.3s; }
.roster-card:hover .roster-img { filter: grayscale(0%); }

.roster-info { padding: 15px; text-align: center; }
.roster-info h4 { color: #fff; font-family: 'Rye'; margin-bottom: 5px; font-size: 1.1rem; }
.rank-badge { font-size: 0.8rem; font-family: 'Roboto Condensed'; font-weight: bold; text-transform: uppercase; }
.rank-badge.high { color: #d32f2f; }
.rank-badge.gold { color: var(--color-gold); }


.profile-wrapper { display: flex; gap: 40px; margin-top: 30px; }
.profile-left { width: 300px; }

.public-mugshot img { 
    width: 100%; border: 5px solid #fff; 
    box-shadow: 0 10px 20px rgba(0,0,0,0.5); transform: rotate(-2deg); 
}
.moto-stats { 
    margin-top: 20px; background: #111; padding: 15px; border: 1px solid #333; 
    font-family: 'Special Elite'; color: #888; font-size: 0.9rem;
}
.moto-stats span { display: block; margin-bottom: 5px; }

.profile-right { flex: 1; }
.char-name { font-family: 'Rye'; font-size: 3rem; color: #fff; line-height: 1; }
.char-rank { font-family: 'Special Elite'; color: var(--color-gold); margin-bottom: 30px; }
.char-bio { font-family: 'Special Elite'; color: #ccc; line-height: 1.6; margin-bottom: 40px; }

.public-vest { 
    background: #151515; padding: 30px; border: 1px dashed #444; 
}
.public-vest h3 { font-family: 'Rye'; color: #555; margin-bottom: 20px; }
.vest-grid { display: flex; flex-wrap: wrap; gap: 15px; }
.vest-item { width: 80px; height: 80px; transition: 0.3s; }
.vest-item:hover { transform: scale(1.1); filter: drop-shadow(0 0 5px var(--color-gold)); }
.vest-item img { width: 100%; height: 100%; object-fit: contain; }


@media (max-width: 768px) {
    .profile-wrapper { flex-direction: column; }
    .gallery-grid { columns: 1; }
}