:root {
    --primary: #6366f1;
    --secondary: #ec4899;
    --accent: #f59e0b;
    --background: #f8fafc;
    --surface: #ffffff;
    --text-primary: #0f172a;
    --text-muted: #64748b;
    --border: #e2e8f0;
}

body {
    font-family: 'Inter', sans-serif;
    background-color: var(--background);
    color: var(--text-primary);
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    scroll-behavior: smooth;
}

.text-muted {
    color: var(--text-muted) !important;
}

.btn-primary {
    background: linear-gradient(135deg, #6366f1 0%, #ec4899 100%);
    color: white;
    border-radius: 9999px;
    transition: transform 0.3s ease;
}

.btn-primary:hover {
    transform: scale(1.05);
}

.card-shadow {
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.04);
    border-radius: 1rem;
    border: 1px solid var(--border);
    background: var(--surface);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.card-shadow:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
}

img {
    max-width: 100%;
    height: auto;
}

/* ===== header ===== */
.nova-header .nav-link {
    position: relative;
}

.nova-header .nav-link::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 0;
    height: 2px;
    background-color: #6366f1;
    transition: width 0.3s ease;
}

.nova-header .nav-link:hover::after {
    width: 100%;
}

.nova-header .js-mobile-menu-container.is-active {
    transform: translateX(0);
}

.nova-header .container {
    max-width: 1280px;
}

/* ===== hero ===== */
.hero-nova-checkpoint {
    position: relative;
    font-family: 'Inter', sans-serif;
}

.hero-nova-checkpoint video {
    filter: grayscale(20%);
}

.hero-nova-checkpoint .container {
    position: relative;
}

/* ===== games_grid ===== */
.games-grid-block .game-card {
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.games-grid-block .game-card:hover {
    transform: translateY(-8px);
}

.games-grid-block .game-card img {
    transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.games-grid-block .container {
    max-width: 1280px;
}

/* ===== latest_updates ===== */
.nova-updates-2026 .update-card {
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.3s ease;
}

.nova-updates-2026 .update-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
}

.nova-updates-2026 .update-card img {
    transition: transform 0.5s ease;
}

.nova-updates-2026 .update-card:hover img {
    transform: scale(1.05);
}

/* ===== tournament_history_preview ===== */
.tournament-history-preview .tournament-card {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.04);
}

.tournament-history-preview .tournament-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 35px -10px rgba(99, 102, 241, 0.12);
}

.tournament-history-preview .tournament-card__image img {
    transition: transform 0.5s ease;
}

.tournament-history-preview .tournament-card:hover .tournament-card__image img {
    transform: scale(1.05);
}

.tournament-history-preview .tournament-card__link {
    box-shadow: 0 4px 14px 0 rgba(99, 102, 241, 0.39);
}

.tournament-history-preview h2 {
    line-height: 1.2;
}

.tournament-history-preview h3 {
    line-height: 1.3;
}

.tournament-history-preview p {
    line-height: 1.6;
    hyphens: auto;
}

/* ===== events_calendar_preview ===== */
.events-calendar-preview .events-card {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.events-calendar-preview .events-card:hover {
    transform: translateY(-5px);
}

.events-calendar-preview .calendar-widget {
    background-image: radial-gradient(circle at top right, rgba(99, 102, 241, 0.03), transparent);
}

.events-calendar-preview .calendar-widget .grid {
    width: 100%;
}

.events-calendar-preview .calendar-widget .grid > div {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    aspect-ratio: 1 / 1;
    padding: 0;
    line-height: 1;
}

.events-calendar-preview .calendar-widget .grid > div.h-8 {
    height: auto;
}

@media (max-width: 767px) {
    .events-calendar-preview h2 {
        hyphens: auto;
    }
}

/* ===== footer ===== */
.nova-footer .container {
    max-width: 1280px;
}

.nova-footer a {
    text-decoration: none;
}

.nova-footer iframe {
    filter: saturate(0.5);
}

.nova-footer iframe:hover {
    filter: saturate(1);
}

@media (max-width: 767px) {
    .nova-footer-info {
        align-items: center;
        text-align: center;
    }

    .nova-footer-nav,
    .nova-footer-contact {
        text-align: center;
    }

    .nova-footer-nav ul,
    .nova-footer-contact ul {
        align-items: center;
    }

    .nova-footer-contact li {
        justify-content: center;
    }
}

/* ===== PAGE: about ===== */
.nova-about-page .team-card { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); }
.nova-about-page .team-card:hover { box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); }
.nova-about-page img { max-width: 100%; height: auto; }
.nova-about-page .contact-details p { margin: 0; }
@media (max-width: 767px) {
  .nova-about-page h1 { font-size: 18px !important; }
  .nova-about-page h2 { font-size: 16px !important; }
  .nova-about-page h3 { font-size: 14px !important; }
}

/* ===== PAGE: games ===== */
.games-catalog .js-game-card img {
  transition: transform 0.5s ease;
}
.games-catalog .js-game-card:hover img {
  transform: scale(1.05);
}
.games-catalog .js-game-card {
  height: 100%;
}
.games-catalog input::placeholder {
  color: #94a3b8;
}
@media (max-width: 767px) {
  .games-catalog .container {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

/* ===== PAGE: tournament-history ===== */
.tournament-history-section .active-filter { background-color: #6366f1 !important; color: #ffffff !important; border-color: #6366f1 !important; }
.tournament-history-section .js-tournament-card { display: flex; flex-direction: column; height: 100%; }
.tournament-history-section input::placeholder { color: #94a3b8; opacity: 1; }
.tournament-history-section .filter-tabs::-webkit-scrollbar { height: 0; }
.tournament-history-section .js-tournament-grid { transition: opacity 0.3s ease; }

/* ===== PAGE: report-player ===== */
.report-instructions-section { font-family: 'Inter', sans-serif; } .report-instructions-section .js-copy-btn:active { transform: scale(0.95); transition: transform 0.1s; } .report-instructions-section .js-steps-container > div { background-image: radial-gradient(circle at top left, rgba(99, 102, 241, 0.02), transparent); }

/* ===== PAGE: update-news ===== */
.news-list-section .js-news-item { perspective: 1000px; }
.news-list-section .line-clamp-3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

/* ===== PAGE: events ===== */
.events-section .js-filter-btn.active {
  background-color: #6366f1;
  color: #ffffff;
  box-shadow: 0 4px 6px -1px rgba(99, 102, 241, 0.2);
}
.events-section .js-event-card {
  height: 100%;
}
.events-section .js-no-results.hidden {
  display: none;
}
.events-section .js-no-results.visible {
  display: flex;
}

/* ===== PAGE: privacy ===== */
.privacy-content { font-family: 'Inter', sans-serif; }
.privacy-content .privacy-card { transition: transform 0.3s ease; }
.privacy-content .privacy-section ul li::marker { color: #6366f1; }
.privacy-content h2, .privacy-content h3 { line-height: 1.3; }
.privacy-content p { line-height: 1.6; }
@media (max-width: 767px) {
  .privacy-content .privacy-card { padding: 1.5rem; }
  .privacy-content .privacy-section h3 { font-size: 14px; }
}

/* ===== PAGE: terms ===== */
.terms-content-section .container { width: 100%; }
.terms-content-section p { hyphens: auto; }
.terms-content-section .shadow-sm { box-shadow: 0 10px 25px -5px rgba(0,0,0,0.04); }
.terms-content-section ul li i { font-size: 1.25rem; }
.terms-content-section a { text-decoration: none; }

/* ===== PAGE: disclaimer ===== */
.disclaimer-block { font-family: 'Inter', sans-serif; }
.disclaimer-block .disclaimer-block__content p { margin-bottom: 1.5rem; }
.disclaimer-block .disclaimer-block__content h2 { color: #6366f1; }
.disclaimer-block .disclaimer-block__container { position: relative; overflow: hidden; }
.disclaimer-block .disclaimer-block__container::before { content: ''; position: absolute; top: 0; left: 0; width: 4px; height: 100%; background: linear-gradient(to bottom, #6366f1, #ec4899); }

.comment-avatar {
    width: 56px;
    height: 56px;
    border-radius: 1rem;
    object-fit: cover;
    border: 2px solid #f1f5f9;
    transition: transform 0.3s ease;
}

.main-comment-container:hover .comment-avatar {
    transform: scale(1.05);
}

.main-comment-container {
    position: relative;
    overflow: hidden;
}

.main-comment-container::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 4px;
    height: 100%;
    background: linear-gradient(135deg, #6366f1 0%, #ec4899 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.main-comment-container:hover::before {
    opacity: 1;
}

.reply-avatar {
    width: 40px;
    height: 40px;
    border-radius: 0.75rem;
    object-fit: cover;
    border: 2px solid #ffffff;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
}

.reply-comment-container {
    position: relative;
}

.reply-comment-container::after {
    content: '';
    position: absolute;
    left: -24px;
    top: -20px;
    width: 20px;
    height: 40px;
    border-left: 2px solid #e2e8f0;
    border-bottom: 2px solid #e2e8f0;
    border-bottom-left-radius: 12px;
}


/* ===== PAGE TEMPLATE: games ===== */
.nova-header .nav-link {
    position: relative;
}

.nova-header .nav-link::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 0;
    height: 2px;
    background-color: #6366f1;
    transition: width 0.3s ease;
}

.nova-header .nav-link:hover::after {
    width: 100%;
}

.nova-header .js-mobile-menu-container.is-active {
    transform: translateX(0);
}

.nova-header .container {
    max-width: 1280px;
}

.nova-game-detail-page .nova-content-block p {
    margin-bottom: 1rem;
}

.nova-game-detail-page .nova-content-block p:last-child {
    margin-bottom: 0;
}

.nova-game-detail-page .js-game-container.is-fullscreen {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 9999;
    border-radius: 0;
}

.nova-game-detail-page .js-game-container.is-fullscreen iframe {
    height: 100%;
}

.nova-footer .container {
    max-width: 1280px;
}

.nova-footer a {
    text-decoration: none;
}

.nova-footer iframe {
    filter: saturate(0.5);
}

.nova-footer iframe:hover {
    filter: saturate(1);
}

@media (max-width: 767px) {
    .nova-footer-info {
        align-items: center;
        text-align: center;
    }

    .nova-footer-nav,
    .nova-footer-contact {
        text-align: center;
    }

    .nova-footer-nav ul,
    .nova-footer-contact ul {
        align-items: center;
    }

    .nova-footer-contact li {
        justify-content: center;
    }
}

/* ===== PAGE TEMPLATE: update-news ===== */
.nova-header .nav-link {
    position: relative;
}

.nova-header .nav-link::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 0;
    height: 2px;
    background-color: #6366f1;
    transition: width 0.3s ease;
}

.nova-header .nav-link:hover::after {
    width: 100%;
}

.nova-header .js-mobile-menu-container.is-active {
    transform: translateX(0);
}

.nova-header .container {
    max-width: 1280px;
}

.prose-content h1,
.prose-content h2,
.prose-content h3 {
    color: #0f172a;
    font-weight: 700;
    margin-bottom: 1.5rem;
}

.prose-content p {
    margin-bottom: 1.5rem;
    line-height: 1.8;
    color: #334155;
}

.prose-content ul {
    list-style: disc;
    padding-left: 1.5rem;
    margin-bottom: 1.5rem;
}

.prose-content li {
    margin-bottom: 0.5rem;
}

.nova-footer .container {
    max-width: 1280px;
}

.nova-footer a {
    text-decoration: none;
}

.nova-footer iframe {
    filter: saturate(0.5);
}

.nova-footer iframe:hover {
    filter: saturate(1);
}

@media (max-width: 767px) {
    .nova-footer-info {
        align-items: center;
        text-align: center;
    }

    .nova-footer-nav,
    .nova-footer-contact {
        text-align: center;
    }

    .nova-footer-nav ul,
    .nova-footer-contact ul {
        align-items: center;
    }

    .nova-footer-contact li {
        justify-content: center;
    }
}

.js-rating-stars .bxs-star {
    color: #f59e0b;
}

.js-game-container.is-fullscreen {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 9999;
}

/* ===== PAGE TEMPLATE: tournament-history ===== */
.nova-header .nav-link {
    position: relative;
}

.nova-header .nav-link::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 0;
    height: 2px;
    background-color: #6366f1;
    transition: width 0.3s ease;
}

.nova-header .nav-link:hover::after {
    width: 100%;
}

.nova-header .js-mobile-menu-container.is-active {
    transform: translateX(0);
}

.nova-header .container {
    max-width: 1280px;
}

.hero-nova-checkpoint {
    position: relative;
    font-family: 'Inter', sans-serif;
}

.nova-footer .container {
    max-width: 1280px;
}

.nova-footer a {
    text-decoration: none;
}

.nova-footer iframe {
    filter: saturate(0.5);
}

.nova-footer iframe:hover {
    filter: saturate(1);
}

@media (max-width: 767px) {
    .nova-footer-info {
        align-items: center;
        text-align: center;
    }

    .nova-footer-nav,
    .nova-footer-contact {
        text-align: center;
    }

    .nova-footer-nav ul,
    .nova-footer-contact ul {
        align-items: center;
    }

    .nova-footer-contact li {
        justify-content: center;
    }
}

.tournament-detail-wrapper .prose-custom p {
    margin-bottom: 1.5rem;
    line-height: 1.8;
}

.tournament-detail-wrapper .comment-avatar {
    width: 50px;
    height: 50px;
    border-radius: 50%;
}

.tournament-detail-wrapper .reply-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
}

/* ===== PAGE TEMPLATE: events ===== */
.event-detail-page .event-description-text h3 {
    font-size: 20px;
    font-weight: 700;
    color: #0f172a;
    margin-bottom: 1rem;
    margin-top: 1.5rem;
}

.event-detail-page .event-description-text p {
    margin-bottom: 1.25rem;
    line-height: 1.8;
}

.event-detail-page .event-description-text ul {
    list-style: disc;
    padding-left: 1.5rem;
    margin-bottom: 1.5rem;
}

.event-detail-page .event-description-text li {
    margin-bottom: 0.5rem;
}

.event-detail-page .comment-avatar,
.event-detail-page .reply-avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid #f1f5f9;
}

.event-detail-page .reply-avatar {
    width: 36px;
    height: 36px;
}

.event-detail-page .js-rating-stars i.bxs-star {
    color: #f59e0b;
}

.event-detail-page .js-iframe-container:fullscreen {
    width: 100vw;
    height: 100vh;
    border-radius: 0;
}

.event-detail-page .js-iframe-container:fullscreen .js-exit-fullscreen {
    display: flex;
}

.event-detail-page .js-iframe-container:fullscreen .js-fullscreen-toggle {
    display: none;
}

.event-detail-page input::placeholder,
.event-detail-page textarea::placeholder {
    color: #94a3b8;
    opacity: 1;
}

.nova-header .js-mobile-menu-container.is-active {
    transform: translateX(0);
}