/* Base styles for the GunGame marketplace */

/*
 * Colour palette inspired by modern NFT and gaming marketplaces. The scheme uses
 * a dark gradient background with neon‑accented buttons and highlights. Root
 * variables make it easy to adjust colours consistently across the site.
 */
:root {
    /*
     * Updated colour palette inspired by high‑end NFT/lootbox sites like Grailed
     * and SkinClub. The dark tones create contrast with vivid neon accents that
     * draw the eye to buttons and interactive elements. Tweaking these
     * variables allows for global theme changes without editing every rule.
     */
    --bg-gradient-start: #0a0f1f;
    --bg-gradient-end: #13162d;
    --primary: #9f3dff;     /* electric purple accent */
    --secondary: #00b5e2;   /* vivid cyan accent */
    --text-light: #e2e8f0;
    --text-muted: #94a3b8;
    --box-bg: #0f172a;
    --box-border: #23314f;
    --success: #10b981;
    --warning: #f59e0b;
}
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/*
 * Override the base colour palette to create a dark, high‑contrast aesthetic
 * suitable for a polished pitch deck. The dark background reduces eye strain,
 * while bright accent colours draw attention to calls to action (e.g. wallet
 * connect buttons). We still use the Inter typeface for modern legibility.
 */
body {
    font-family: 'Poppins', sans-serif;
    line-height: 1.6;
    color: var(--text-light);
    background: linear-gradient(180deg, var(--bg-gradient-start), var(--bg-gradient-end));
}

header {
    background-color: rgba(16, 23, 38, 0.8); /* translucent dark header */
    color: var(--text-light);
    padding: 1rem 0;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);
    backdrop-filter: blur(4px);
}

.nav-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 960px;
    margin: 0 auto;
    padding: 0 1rem;
}

/* Icons in the navigation bar */
.nav-icon {
    height: 24px;
    width: auto;
    margin-left: 0.75rem;
    filter: brightness(0) invert(1);
    opacity: 0.85;
    transition: opacity 0.2s;
}
.nav-icon:hover {
    opacity: 1;
}

.logo {
    font-size: 1.5rem;
    font-weight: 700;
}

nav a {
    color: var(--text-muted);
    margin-left: 1.5rem;
    text-decoration: none;
    font-weight: 500;
    transition: color 0.2s;
}

nav a:hover {
    color: var(--secondary); /* aqua highlight on hover */
}

/* wallet connect button in navigation */
.wallet-btn {
    margin-left: 1.5rem;
    padding: 0.5rem 1.2rem;
    border: none;
    background-image: linear-gradient(135deg, var(--primary), var(--secondary));
    color: #0e1a2b;
    border-radius: 6px;
    font-weight: 600;
    cursor: pointer;
    transition: transform 0.2s;
}
.wallet-btn:hover {
    transform: translateY(-2px);
}

/*
 * Hero styling: Use a dark overlay and gradient to make text pop. The hero
 * background remains the abstract keyboard photo, but a radial gradient
 * ensures the centre remains bright while the edges darken. We removed the
 * solid black overlay in favour of a translucent gradient for better depth.
 */
.hero {
    /* CS‑themed hero uses a weapon skin as the backdrop with a dark gradient
       overlay. The gradient ensures readability while letting the skin peek
       through. */
    background-image: linear-gradient(rgba(14,26,43,0.8), rgba(14,26,43,0.9)), url('assets/awp_dragon_lore.png');
    background-size: cover;
    background-position: center;
    padding: 6rem 0;
    color: var(--text-light);
    text-align: center;
}

.hero-content {
    max-width: 760px;
    margin: 0 auto;
    background: rgba(16, 23, 38, 0.6);
    padding: 2.5rem;
    border-radius: 12px;
    backdrop-filter: blur(6px);
}

.hero h1 {
    font-size: 3rem;
    margin-bottom: 1rem;
    font-weight: 700;
}

.hero p {
    font-size: 1.2rem;
    margin-bottom: 2rem;
    color: #cbd5e1;
}

.btn {
    display: inline-block;
    padding: 0.7rem 1.4rem;
    border-radius: 6px;
    text-decoration: none;
    font-weight: 500;
}

.btn-primary {
    background-image: linear-gradient(135deg, var(--primary), var(--secondary));
    color: #0e1a2b;
    transition: transform 0.2s;
}

.btn-primary:hover {
    transform: translateY(-2px);
}

/* Container remains centred but gains more spacing on larger screens */
.container {
    max-width: 980px;
    margin: 0 auto;
    padding: 2.5rem 1rem;
}

/* Headings across the site share consistent styling */
.features h2,
.how-it-works h2,
.opportunity h2,
.why-solana h2,
.mission h2 {
    text-align: center;
    margin-bottom: 2rem;
    font-size: 2.25rem;
    color: var(--primary);
    font-weight: 700;
}

/* Generic grid used in feature sections */
.feature-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 2rem;
}

/* Feature card styling updated for dark mode */
.feature {
    background-color: var(--box-bg);
    border: 1px solid var(--box-border);
    padding: 1.5rem;
    border-radius: 6px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    transition: transform 0.1s;
}
.feature:hover {
    transform: translateY(-3px);
}
.feature h3 {
    margin-bottom: 0.5rem;
    color: var(--primary);
}
.feature p {
    color: var(--text-muted);
}

/* Ordered list for how‑it‑works section */
.how-it-works ol {
    list-style-position: inside;
    margin-left: 1rem;
    color: #cbd5e1;
}

footer {
    background-color: #0a1522;
    color: #64748b;
    text-align: center;
    padding: 1.5rem 0;
    font-size: 0.9rem;
}

/* Skins page styles */
.grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1.5rem;
}

/* Card styling updated to fit dark theme */
/*
 * Card styling: create a polished, 3D‑inspired look reminiscent of NFT
 * marketplaces such as OpenSea. Cards have rounded corners, subtle
 * elevations and an overlay that reveals the seller on hover. The
 * perspective and scale effects give a feeling of depth without
 * overwhelming the design.
 */
.card {
    background-color: var(--box-bg);
    border: 1px solid var(--box-border);
    border-radius: 8px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    transform-style: preserve-3d;
}

.card:hover {
    transform: translateY(-5px) scale(1.02);
    /* Enhance the hover effect with a coloured glow to evoke neon lighting */
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.4),
                0 0 12px rgba(159, 61, 255, 0.4),
                0 0 24px rgba(0, 181, 226, 0.3);
}

.card img {
    width: 100%;
    height: 160px;
    object-fit: cover;
}

.card-content {
    padding: 1rem;
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    color: #cbd5e1;
}

/* Image container and overlay for seller information */
.card-image-container {
    position: relative;
    width: 100%;
    height: 200px;
    overflow: hidden;
}

.card-image-container img {
    width: 100%;
    height: 100%;
    /* Show the entire weapon rather than cropping off parts. Using contain
       ensures the full skin is visible while maintaining the aspect ratio. */
    object-fit: contain;
    background-color: var(--box-bg);
    display: block;
    transition: transform 0.3s ease;
}

.card:hover .card-image-container img {
    transform: scale(1.05);
}

.card-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: rgba(10, 21, 34, 0.8);
    padding: 0.4rem 0.6rem;
    font-size: 0.75rem;
    color: #f1f5f9;
    transform: translateY(100%);
    transition: transform 0.3s ease;
}

.card:hover .card-overlay {
    transform: translateY(0);
}

.card-title {
    font-weight: 600;
    margin-bottom: 0.5rem;
    color: #e2e8f0;
}

.card-price {
    color: var(--success);
    font-weight: 700;
    margin-bottom: 1rem;
}

.card button {
    padding: 0.5rem 1rem;
    border: none;
    border-radius: 4px;
    background-image: linear-gradient(135deg, var(--primary), var(--secondary));
    color: #0e1a2b;
    font-weight: 600;
    cursor: pointer;
    transition: transform 0.2s;
}

.card button:hover {
    transform: translateY(-2px);
}

/* Modal styles */
.modal {
    display: none;
    position: fixed;
    z-index: 1000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0, 0, 0, 0.5);
}

.modal-content {
    /* Dark theme for purchase and wallet modals to better match the site’s aesthetic */
    background-color: #131c2b;
    margin: 10% auto;
    padding: 2rem;
    border: 1px solid #22395b;
    width: 90%;
    max-width: 460px;
    border-radius: 8px;
    text-align: center;
    color: #e2e8f0;
}

.close {
    color: #64748b;     /* subdued grey for dark mode */
    float: right;
    font-size: 28px;
    font-weight: bold;
    cursor: pointer;
    transition: color 0.2s;
}

.close:hover,
.close:focus {
    color: #eab308;    /* yellow accent on hover */
}

/* Case page styles */
.cases-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2rem;
}

.case-panel {
    background-color: #131c2b;
    border: 1px solid #22395b;
    padding: 2rem;
    border-radius: 8px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
    text-align: center;
    width: 300px;
}

.case-panel h3 {
    margin-bottom: 1rem;
    color: #eab308;
}

.result-image {
    width: 200px;
    height: 200px;
    object-fit: cover;
    margin: 1rem auto;
    border-radius: 6px;
    border: 1px solid #e2e8f0;
}

/* Styling for result text on the case page */
.result-section h4 {
    margin-top: 1rem;
    color: #eab308;
    font-weight: 600;
}
.result-section p {
    color: #cbd5e1;
    margin-top: 0.25rem;
}

/* Toast notification styles for subtle pop‑ups */
.toast {
    position: fixed;
    bottom: 1.5rem;
    right: 1.5rem;
    background-color: #131c2b;
    color: #f1f5f9;
    padding: 1rem 1.5rem;
    border: 1px solid #22395b;
    border-radius: 8px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.3s ease, transform 0.3s ease;
    z-index: 2000;
}
.toast.show {
    opacity: 1;
    transform: translateY(0);
}

/* Token contract address section */
.token-info {
    background-color: var(--box-bg);
    border: 1px solid var(--box-border);
    border-radius: 8px;
    padding: 1.5rem;
    max-width: 640px;
    margin: 2rem auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}
.token-info .token-label {
    font-weight: 600;
    color: var(--primary);
}
.token-info .token-address {
    font-family: monospace;
    color: var(--text-muted);
    flex: 1;
    overflow-wrap: anywhere;
}
.token-info button.copy-btn {
    padding: 0.4rem 0.8rem;
    border: none;
    border-radius: 6px;
    background-image: linear-gradient(135deg, var(--primary), var(--secondary));
    color: #0e1a2b;
    cursor: pointer;
    font-weight: 500;
    transition: transform 0.2s;
}
.token-info button.copy-btn:hover {
    transform: translateY(-2px);
}
