/**
 * FRESH TWEAKS v2.0 — 和風 Additive Layer
 * Loads AFTER zen-theme.css — only small overrides
 */

/* Sakura particles tuning */
@keyframes sakura-fall {
    0% { transform: translateY(-10vh) rotate(0deg); opacity: 0; }
    10% { opacity: 0.45; }
    90% { opacity: 0.2; }
    100% { transform: translateY(105vh) rotate(360deg); opacity: 0; }
}
@keyframes sakura-sway {
    0%, 100% { margin-left: 0; }
    25% { margin-left: 20px; }
    75% { margin-left: -15px; }
}
.sakura-container { position: fixed; inset: 0; pointer-events: none; z-index: 1; overflow: hidden; }
.sakura-petal {
    position: absolute; width: 7px; height: 7px;
    background: radial-gradient(ellipse, rgba(56, 189, 248,0.5) 0%, rgba(56, 189, 248,0.1) 100%);
    border-radius: 50% 0 50% 0; opacity: 0;
    animation: sakura-fall linear infinite, sakura-sway ease-in-out infinite;
}

/* Server card tuning */
.server-card { padding: 18px 22px !important; margin-bottom: 0 !important; border-radius: 14px !important; }
.server-card .rank-badge { width: 44px !important; height: 44px !important; font-size: 1.05rem !important; }
.server-card .banner-container { width: 180px !important; height: 40px !important; }
.server-card .server-name { font-size: 1rem !important; }
.server-card .info-section { gap: 10px !important; }
.server-card .stats-row { gap: 8px !important; }
.server-card .stat-badge { padding: 5px 10px !important; font-size: 0.78rem !important; }
.server-card .stat-badge.ip code { font-size: 0.76rem !important; }
.server-card .vote-container { width: 88px !important; padding-left: 12px !important; }
.server-card .vote-btn { padding: 8px 6px !important; min-width: 72px !important; }
.server-card .mode-badge { font-size: 0.74rem !important; padding: 4px 10px !important; }

/* Announce badge — gentle float */
@keyframes float-gentle {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-3px); }
}
.announce-badge {
    font-size: 0.82rem; padding: 7px 18px;
    animation: float-gentle 5s ease-in-out infinite;
}

/* Hero title shimmer */
@keyframes shimmer-text {
    0% { background-position: -200% center; }
    100% { background-position: 200% center; }
}
.hero-title {
    background: linear-gradient(135deg, var(--zen-snow, #f0f4f8) 0%, var(--zen-sakura, #38bdf8) 40%, var(--zen-snow, #f0f4f8) 60%, var(--zen-gold, #38bdf8) 100%) !important;
    background-size: 300% auto !important;
    -webkit-background-clip: text !important; -webkit-text-fill-color: transparent !important;
    background-clip: text !important;
    animation: shimmer-text 8s ease-in-out infinite;
}

/* Search */
.zen-search-box { max-width: 520px; margin: 0 auto 24px; }
.zen-search-input {
    padding: 11px 44px 11px 16px;
    background: var(--zen-paper, #1a1f2a); border: 1px solid var(--zen-border, rgba(56, 189, 248,0.12));
    border-radius: 10px; color: var(--zen-text, #e8e2d8); font-size: 0.88rem;
}
.zen-search-input::placeholder { color: var(--zen-text-muted, #7a7268); }
.zen-search-input:focus {
    border-color: var(--zen-gold, #38bdf8);
    box-shadow: 0 0 0 3px rgba(56, 189, 248,0.12), 0 4px 16px rgba(0,0,0,0.2);
}
.zen-search-clear {
    position: absolute; right: 14px; top: 50%; transform: translateY(-50%);
    color: var(--zen-text-muted); cursor: pointer; font-size: 0.9rem; padding: 4px;
    background: transparent; border: none; display: none;
}
.zen-search-clear:hover { color: var(--zen-vermilion, #38bdf8); }
.zen-search-clear.active { display: block; }
.zen-no-results { text-align: center; padding: 28px 16px; color: var(--zen-text-muted); font-size: 0.9rem; display: none; }
.zen-no-results.visible { display: block; }

/* Sort */
.zen-sort-bar { display: flex; justify-content: center; gap: 6px; flex-wrap: wrap; margin-bottom: 24px; }
.zen-sort-btn {
    padding: 7px 14px;
    background: var(--zen-paper, #1a1f2a); border: 1px solid var(--zen-border, rgba(56, 189, 248,0.12));
    border-radius: 8px; color: var(--zen-text-secondary, #b8b0a4);
    font-family: 'Outfit', sans-serif; font-size: 0.78rem; font-weight: 600; cursor: pointer;
}
.zen-sort-btn:hover { background: var(--zen-paper-hover, #222836); color: var(--zen-text, #e8e2d8); }
.zen-sort-btn.active {
    background: linear-gradient(135deg, var(--zen-vermilion, #38bdf8), #0ea5e9);
    border-color: var(--zen-vermilion); color: #fff;
    box-shadow: 0 2px 10px rgba(56, 189, 248,0.25);
}

/* Pagination spacing */
.pagination { margin-bottom: 48px !important; padding-bottom: 16px; }

/* Stat pills */
.stat-pill { padding: 8px 18px; font-size: 0.88rem; }

/* Responsive tweaks */
@media (max-width: 1024px) {
    .server-card .banner-container { width: 100% !important; height: 40px !important; }
    .server-card .vote-container { border-left: none !important; padding-left: 0 !important; width: auto !important; }
}
@media (max-width: 768px) {
    .server-card { padding: 12px !important; }
    .server-card .vote-container { width: 100% !important; }
    .server-card .rank-badge { width: 34px !important; height: 34px !important; font-size: 0.85rem !important; }
    .server-card .banner-container { width: 100% !important; height: 44px !important; }
    .zen-sort-bar { gap: 4px; }
    .zen-sort-btn { padding: 6px 10px; font-size: 0.72rem; }
}
@media (max-width: 640px) {
    .stat-pill { padding: 7px 14px; font-size: 0.8rem; }
    .zen-search-input { font-size: 0.85rem; padding: 10px 40px 10px 14px; }
}
@media (prefers-reduced-motion: reduce) {
    .sakura-container { display: none !important; }
    .announce-badge { animation: none; }
    .hero-title { animation: none; }
}
@media print {
    .sakura-container, .zen-search-box, .zen-sort-bar { display: none !important; }
}
