/* ==========================================================================
   Infinity Dots - Design Tokens & Core Variables
   ========================================================================== */
:root {
    --font-main: 'Outfit', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

    /* App Sizing */
    --frame-width: 412px;
    --frame-height: 892px;
    /* Standard modern tall mobile ratio */
    --grid-cols: 9;
    --grid-rows: 9;

    /* Deep Space Theme Color Palette */
    --bg-app: #090a15;
    --bg-frame: #0d0f22;
    --color-text: #f0f3ff;
    --color-text-muted: #8d94ba;

    /* Glassmorphic variables */
    --glass-bg: rgba(255, 255, 255, 0.05);
    --glass-border: rgba(255, 255, 255, 0.09);
    --glass-glow: rgba(0, 210, 255, 0.15);

    /* Game Gem Colors */
    --color-red: #ff0055;
    --color-blue: #00f0ff;
    --color-green: #00ff66;
    --color-yellow: #ffea00;
    --color-purple: #cc00ff;
    --color-orange: #ff7300;

    /* Gem Gradients (For glossy 3D spheres) */
    --grad-red: radial-gradient(circle at 35% 35%, #ff6699, var(--color-red) 55%, #990022);
    --grad-blue: radial-gradient(circle at 35% 35%, #a6f7ff, var(--color-blue) 55%, #00778c);
    --grad-green: radial-gradient(circle at 35% 35%, #a3ffc2, var(--color-green) 55%, #008033);
    --grad-yellow: radial-gradient(circle at 35% 35%, #fffaa6, var(--color-yellow) 55%, #998c00);
    --grad-purple: radial-gradient(circle at 35% 35%, #f0a6ff, var(--color-purple) 55%, #660080);
    --grad-orange: radial-gradient(circle at 35% 35%, #ffb673, var(--color-orange) 55%, #994500);

    /* Drop Shadows & Glows */
    --glow-red: 0 0 8px rgba(255, 0, 85, 0.4);
    --glow-blue: 0 0 8px rgba(0, 240, 255, 0.4);
    --glow-green: 0 0 8px rgba(0, 255, 102, 0.4);
    --glow-yellow: 0 0 8px rgba(255, 234, 0, 0.4);
    --glow-purple: 0 0 8px rgba(204, 0, 255, 0.4);
    --glow-orange: 0 0 8px rgba(255, 115, 0, 0.4);

    --ui-shadow: 0 6px 20px 0 rgba(0, 0, 0, 0.35);

    /* Animations */
    --transition-fast: 0.15s ease;
    --transition-normal: 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
    --transition-slide: 0.28s cubic-bezier(0.34, 1.56, 0.64, 1);
    /* Bouncy sliding */
}

/* Reset & Base Styles */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    -webkit-tap-highlight-color: transparent;
    user-select: none;
    -webkit-user-select: none;
}

body {
    font-family: var(--font-main);
    background-color: var(--bg-app);
    color: var(--color-text);
    min-height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
}

/* ==========================================================================
   Responsive Shell Layout
   ========================================================================== */
.app-container {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100vh;
    background: radial-gradient(circle at 50% 50%, #151833, #090a15);
    perspective: 1000px;
}

/* Desktop Frame Wrapper */
.phone-frame {
    width: var(--frame-width);
    height: var(--frame-height);
    background-color: var(--bg-frame);
    border-radius: 40px;
    border: 12px solid #23253b;
    position: relative;
    overflow: hidden;
    box-shadow: 0 25px 60px -10px rgba(0, 0, 0, 0.8), 0 0 0 1px rgba(255, 255, 255, 0.05);
    display: flex;
    flex-direction: column;
}

/* Top Notch for mobile aesthetic */
.notch {
    width: 150px;
    height: 28px;
    background-color: #23253b;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    border-bottom-left-radius: 18px;
    border-bottom-right-radius: 18px;
    z-index: 1000;
    pointer-events: none;
}

/* Screen manager styles */
.screen {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--transition-normal);
    display: flex;
    flex-direction: column;
    padding: 40px 16px 16px 16px;
    /* Account for notch */
    z-index: 1;
}

.screen.active {
    opacity: 1;
    pointer-events: auto;
    z-index: 10;
}

/* ==========================================================================
   Buttons & UI Elements
   ========================================================================== */
.btn {
    font-family: var(--font-main);
    font-weight: 800;
    font-size: 16px;
    letter-spacing: 1px;
    text-transform: uppercase;
    padding: 16px 28px;
    border-radius: 16px;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    transition: all var(--transition-fast);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
    position: relative;
    overflow: hidden;
}

.btn::after {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: linear-gradient(45deg, transparent, rgba(255, 255, 255, 0.1), transparent);
    transform: rotate(45deg);
    transition: var(--transition-normal);
    opacity: 0;
}

.btn:hover::after {
    opacity: 1;
    left: 120%;
    transition: 0.6s ease;
}

.btn:active {
    transform: scale(0.96);
}

.btn-primary {
    background: linear-gradient(135deg, #00d2ff, #0066ff);
    color: #fff;
    box-shadow: 0 6px 20px rgba(0, 210, 255, 0.4);
}

.btn-primary:hover {
    box-shadow: 0 8px 25px rgba(0, 210, 255, 0.6);
}

.btn-secondary {
    background: var(--glass-bg);
    color: var(--color-text);
    border: 1px solid var(--glass-border);
    backdrop-filter: blur(10px);
}

.btn-secondary:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.2);
}

.btn-danger {
    background: linear-gradient(135deg, #ff5a79, #c3002f);
    color: #fff;
    box-shadow: 0 6px 20px rgba(255, 90, 121, 0.4);
}

.btn-danger:hover {
    box-shadow: 0 8px 25px rgba(255, 90, 121, 0.6);
}

.btn-back {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    border: 1px solid var(--glass-border);
    background: var(--glass-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all var(--transition-fast);
}

.btn-back svg {
    width: 24px;
    height: 24px;
    fill: var(--color-text);
}

.btn-back:hover {
    background: rgba(255, 255, 255, 0.1);
}

.btn-icon {
    width: 20px;
    height: 20px;
    fill: currentColor;
}

/* Pulsing Effect for Primary buttons */
.btn-pulse {
    animation: pulse-button 2s infinite;
}

@keyframes pulse-button {
    0% {
        box-shadow: 0 0 0 0 rgba(0, 210, 255, 0.7);
    }

    70% {
        box-shadow: 0 0 0 15px rgba(0, 210, 255, 0);
    }

    100% {
        box-shadow: 0 0 0 0 rgba(0, 210, 255, 0);
    }
}

/* ==========================================================================
   1. START SCREEN
   ========================================================================== */
.start-bg-animation {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    z-index: 1;
    pointer-events: none;
}

.glow-orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
    opacity: 0.15;
    animation: orb-float 15s infinite ease-in-out alternate;
}

.orb-1 {
    width: 300px;
    height: 300px;
    background: var(--color-purple);
    top: -10%;
    left: -20%;
    animation-duration: 20s;
}

.orb-2 {
    width: 250px;
    height: 250px;
    background: var(--color-blue);
    bottom: 10%;
    right: -10%;
    animation-duration: 15s;
}

@keyframes orb-float {
    0% {
        transform: translate(0, 0) scale(1);
    }

    100% {
        transform: translate(40px, 60px) scale(1.2);
    }
}

.start-content {
    position: relative;
    z-index: 2;
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
}

.logo-container {
    margin-bottom: 40px;
}

.logo-text {
    font-weight: 800;
    font-size: 52px;
    letter-spacing: -2px;
    line-height: 1;
    text-transform: uppercase;
    color: var(--color-text);
    text-shadow: 0 0 30px rgba(255, 255, 255, 0.1);
    animation: float-logo 4s ease-in-out infinite;
}

.logo-text span {
    color: var(--color-blue);
    background: linear-gradient(135deg, var(--color-blue), var(--color-purple));
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    display: block;
}

.logo-tagline {
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 4px;
    color: var(--color-text-muted);
    margin-top: 12px;
}

@keyframes float-logo {

    0%,
    100% {
        transform: translateY(0px);
    }

    50% {
        transform: translateY(-10px);
    }
}

.best-score-badge {
    background: var(--glass-bg);
    border: 1px solid var(--glass-border);
    padding: 12px 24px;
    border-radius: 20px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    backdrop-filter: blur(10px);
    margin-bottom: 50px;
    box-shadow: var(--ui-shadow);
}

.badge-label {
    font-size: 10px;
    font-weight: 800;
    color: var(--color-text-muted);
    letter-spacing: 2px;
    text-transform: uppercase;
}

.badge-value {
    font-size: 26px;
    font-weight: 800;
    color: var(--color-yellow);
    text-shadow: var(--glow-yellow);
}

.start-actions {
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100%;
    max-width: 280px;
}

.footer-credit {
    font-size: 12px;
    font-weight: 600;
    color: var(--color-text-muted);
    letter-spacing: 2px;
    text-transform: uppercase;
    text-align: center;
    margin-top: auto;
}

/* ==========================================================================
   2. LEVEL SELECT SCREEN
   ========================================================================== */
.screen-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 24px;
    position: relative;
    z-index: 5;
}

.screen-header h2 {
    font-size: 20px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.header-placeholder {
    width: 44px;
    /* Match back button width for symmetry */
}

.level-list-container {
    flex: 1;
    overflow-y: auto;
    padding-bottom: 40px;
    mask-image: linear-gradient(to bottom, black 85%, transparent);
    -webkit-mask-image: linear-gradient(to bottom, black 85%, transparent);
}

/* Custom scrollbar */
.level-list-container::-webkit-scrollbar {
    width: 6px;
}

.level-list-container::-webkit-scrollbar-thumb {
    background-color: var(--glass-border);
    border-radius: 3px;
}

.level-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    padding: 10px 4px;
}

.level-card {
    background: var(--glass-bg);
    border: 1px solid var(--glass-border);
    border-radius: 24px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    cursor: pointer;
    transition: all var(--transition-normal);
    backdrop-filter: blur(10px);
    position: relative;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
}

.level-card:hover {
    transform: translateY(-4px);
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.2);
}

.level-card:active {
    transform: translateY(0);
}

.level-card.locked {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
}

.level-card.locked::after {
    content: '🔒';
    font-size: 24px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.level-card.locked .level-num,
.level-card.locked .level-stars,
.level-card.locked .level-target {
    visibility: hidden;
}

.level-num {
    font-size: 32px;
    font-weight: 800;
    color: var(--color-blue);
    text-shadow: var(--glow-blue);
    margin-bottom: 6px;
}

.level-card:nth-child(2n) .level-num {
    color: var(--color-purple);
    text-shadow: var(--glow-purple);
}

.level-card:nth-child(3n) .level-num {
    color: var(--color-green);
    text-shadow: var(--glow-green);
}

.level-target {
    font-size: 11px;
    color: var(--color-text-muted);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.level-stars {
    margin-top: 12px;
    font-size: 14px;
    color: var(--glass-border);
    display: flex;
    gap: 2px;
}

.level-stars .star-active {
    color: var(--color-yellow);
    text-shadow: 0 0 5px rgba(255, 232, 83, 0.5);
}

/* ==========================================================================
   3. GAME SCREEN
   ========================================================================== */
.game-hud {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}

.btn-hud-icon {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 1px solid var(--glass-border);
    background: var(--glass-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all var(--transition-fast);
}

.btn-hud-icon svg {
    width: 20px;
    height: 20px;
    fill: var(--color-text);
}

.btn-hud-icon:hover {
    background: rgba(255, 255, 255, 0.1);
    transform: scale(1.05);
}

.hud-center {
    text-align: center;
}

.hud-title {
    font-size: 18px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.target-badge {
    font-size: 11px;
    font-weight: 600;
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-top: 2px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    flex-wrap: wrap;
}

.objective-badges-container {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.obj-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 12px;
    font-size: 11px;
    font-weight: 700;
    color: #fff;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
}

.obj-badge.completed {
    background: rgba(0, 255, 120, 0.15);
    border-color: rgba(0, 255, 120, 0.5);
    color: var(--color-green);
}

.obj-icon {
    font-size: 12px;
}

/* Stats Cards */
.game-stats-row {
    display: grid;
    grid-template-columns: 2.2fr 1.8fr;
    gap: 12px;
    margin-bottom: 16px;
}

.stat-card {
    background: var(--glass-bg);
    border: 1px solid var(--glass-border);
    border-radius: 20px;
    padding: 12px 16px;
    display: flex;
    flex-direction: column;
    backdrop-filter: blur(10px);
    position: relative;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
}

.stat-label {
    font-size: 9px;
    font-weight: 800;
    color: var(--color-text-muted);
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.stat-value {
    font-size: 26px;
    font-weight: 800;
    margin-top: 2px;
}

.score-card .stat-value {
    color: var(--color-text);
}

.moves-card {
    align-items: center;
    justify-content: center;
}

.moves-card .stat-value {
    color: var(--color-yellow);
    text-shadow: var(--glow-yellow);
    font-size: 32px;
    line-height: 1;
}

/* Score Progress Bar */
.score-progress-bar-container {
    width: 100%;
    height: 6px;
    background: rgba(255, 255, 255, 0.08);
    border-radius: 3px;
    margin-top: 8px;
    overflow: hidden;
    position: relative;
}

.score-progress-bar {
    height: 100%;
    width: 0%;
    background: linear-gradient(90deg, var(--color-blue), var(--color-green));
    border-radius: 3px;
    transition: width 0.4s ease;
    box-shadow: 0 0 10px rgba(0, 245, 160, 0.5);
}

/* ==========================================================================
   Game Board (Crucial Section)
   ========================================================================== */
.board-outer-container {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 12px;
    width: 100%;
}

.board-wrapper {
    width: 100%;
    aspect-ratio: 9 / 9;
    /* Keep 9x9 ratio */
    background: rgba(10, 11, 28, 0.6);
    border: 4px solid var(--glass-border);
    border-radius: 28px;
    position: relative;
    overflow: hidden;
    box-shadow: inset 0 4px 30px rgba(0, 0, 0, 0.6), var(--ui-shadow);
    touch-action: none;
    /* Block default scroll gestures during game play */
}

/* Visual grid backing cells */
.board-bg-grid {
    display: grid;
    grid-template-columns: repeat(var(--grid-cols, 9), 1fr);
    grid-template-rows: repeat(var(--grid-rows, 9), 1fr);
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    pointer-events: none;
    z-index: 1;
    padding: 4px;
}

.bg-cell {
    border: 1px solid rgba(255, 255, 255, 0.02);
    background: rgba(255, 255, 255, 0.015);
    border-radius: 8px;
    margin: 3px;
}

.bg-cell-hole {
    visibility: hidden;
    pointer-events: none;
    opacity: 0;
    border: none;
    background: transparent;
}

.bg-cell-blocked {
    background: rgba(20, 24, 38, 0.8);
    border: 1px dashed rgba(255, 255, 255, 0.1);
    box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.5);
}

/* Ice Layer (Frost Tiles) */
.board-ice-layer {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 3;
    pointer-events: none;
    padding: 4px;
}

.ice-tile {
    position: absolute;
    width: calc((100% - 8px) / var(--grid-cols, 9));
    height: calc((100% - 8px) / var(--grid-rows, 9));
    left: calc(4px + var(--col) * ((100% - 8px) / var(--grid-cols, 9)));
    top: calc(4px + var(--row) * ((100% - 8px) / var(--grid-rows, 9)));
    display: flex;
    justify-content: center;
    align-items: center;
    pointer-events: none;
    transition: transform 0.2s ease-out, opacity 0.2s ease-out;
}

.ice-tile-inner {
    width: 90%;
    height: 90%;
    background: linear-gradient(135deg, rgba(160, 235, 255, 0.5), rgba(70, 180, 255, 0.25));
    border: 1.5px solid rgba(220, 245, 255, 0.7);
    border-radius: 10px;
    box-shadow: inset 0 0 8px rgba(255, 255, 255, 0.6), 0 0 10px rgba(0, 200, 255, 0.3);
    backdrop-filter: blur(2px);
    position: relative;
    overflow: hidden;
}

.ice-tile-inner::after {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: linear-gradient(45deg, transparent 40%, rgba(255, 255, 255, 0.4) 50%, transparent 60%);
    pointer-events: none;
}

.ice-tile.shattering {
    transform: scale(1.25);
    opacity: 0;
    filter: blur(4px);
    transition: all 0.25s ease-out;
}

/* Active Dots Grid */
.board-grid {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    padding: 4px;
}

/* Active Gem Element */
.gem {
    position: absolute;
    /* Coordinates are controlled by --col and --row CSS custom variables */
    width: calc((100% - 8px) / var(--grid-cols, 9));
    height: calc((100% - 8px) / var(--grid-rows, 9));
    left: calc(4px + var(--col) * ((100% - 8px) / var(--grid-cols, 9)));
    top: calc(4px + var(--row) * ((100% - 8px) / var(--grid-rows, 9)));

    display: flex;
    justify-content: center;
    align-items: center;
    cursor: grab;
    /* Smoothly slide using bouncy transition when coordinates update */
    transition: top var(--transition-slide), left var(--transition-slide), transform var(--transition-fast), opacity var(--transition-fast);
    z-index: 5;
}

.gem:active {
    cursor: grabbing;
}

/* Inner Sphere Graphic */
.gem-inner {
    width: 78%;
    height: 78%;
    border-radius: 50%;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.4);
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform var(--transition-fast);
}

.gem:hover .gem-inner {
    transform: scale(1.06);
}

.gem.selected .gem-inner {
    transform: scale(1.15);
    animation: gem-pulse-selected 1s infinite alternate;
    z-index: 10;
}

@keyframes gem-pulse-selected {
    0% {
        box-shadow: 0 0 10px rgba(255, 255, 255, 0.4);
    }

    100% {
        box-shadow: 0 0 22px rgba(255, 255, 255, 0.9);
    }
}

/* Dot Color Styling mapping */
.gem-red .gem-inner {
    background: var(--grad-red);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.4), var(--glow-red);
}

.gem-blue .gem-inner {
    background: var(--grad-blue);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.4), var(--glow-blue);
}

.gem-green .gem-inner {
    background: var(--grad-green);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.4), var(--glow-green);
}

.gem-yellow .gem-inner {
    background: var(--grad-yellow);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.4), var(--glow-yellow);
}

.gem-purple .gem-inner {
    background: var(--grad-purple);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.4), var(--glow-purple);
}

.gem-orange .gem-inner {
    background: var(--grad-orange);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.4), var(--glow-orange);
}

.gem-gray .gem-inner {
    background: radial-gradient(circle at 35% 35%, #888888, #555555 55%, #222222);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.5);
    border-radius: 12px;
    border: 2px solid #aaaaaa;
}

.gem-block {
    cursor: grab;
}

.gem-block-unmatchable .gem-inner {
    border: 2px dashed #00f5a0 !important;
    box-shadow: 0 0 10px rgba(0, 245, 160, 0.4);
}

.gem-block-unmatchable .gem-inner::after {
    content: '🔓';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 13px;
    opacity: 0.75;
    pointer-events: none;
}

.gem-block-unswappable {
    cursor: not-allowed !important;
}

.gem-block-unswappable .gem-inner {
    border: 2px solid #ff4d4d !important;
    box-shadow: 0 0 12px rgba(255, 77, 77, 0.6);
}

.gem-block-unswappable .gem-inner::after {
    content: '🔒';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 15px;
    opacity: 0.85;
    pointer-events: none;
}

/* Assistance symbols overlay (For accessibility/colorblind support) */
.colorblind-symbol {
    font-size: 14px;
    font-weight: 800;
    color: rgba(255, 255, 255, 0.7);
    mix-blend-mode: overlay;
    display: none;
    /* Managed by settings toggle */
    pointer-events: none;
}

.show-symbols .colorblind-symbol {
    display: block;
}

/* ==========================================================================
   Special Items & Crushed states
   ========================================================================== */
/* Striped Gem (Match 4) - linear stripes on sphere */
.gem-striped .gem-inner::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background: repeating-linear-gradient(45deg, transparent, transparent 6px, rgba(255, 255, 255, 0.4) 6px, rgba(255, 255, 255, 0.4) 12px);
    animation: stripe-glow 2s infinite linear;
}

.gem-striped.striped-row .gem-inner::after {
    background: repeating-linear-gradient(0deg, transparent, transparent 6px, rgba(255, 255, 255, 0.45) 6px, rgba(255, 255, 255, 0.45) 12px);
}

.gem-striped.striped-col .gem-inner::after {
    background: repeating-linear-gradient(90deg, transparent, transparent 6px, rgba(255, 255, 255, 0.45) 6px, rgba(255, 255, 255, 0.45) 12px);
}

@keyframes stripe-glow {
    0% {
        filter: brightness(1);
    }

    50% {
        filter: brightness(1.2);
    }

    100% {
        filter: brightness(1);
    }
}

/* Explosive Gem (Bomb) - L/T shape match. Glowing fiery border ring. */
.gem-bomb .gem-inner::after {
    content: '';
    position: absolute;
    top: -8%;
    left: -8%;
    right: -8%;
    bottom: -8%;
    border-radius: 50%;
    border: 3px dashed rgba(255, 255, 255, 0.7);
    box-shadow: 0 0 15px currentColor;
    animation: bomb-spin 6s infinite linear;
}

@keyframes bomb-spin {
    0% {
        transform: rotate(0deg) scale(1);
    }

    50% {
        transform: rotate(180deg) scale(1.05);
    }

    100% {
        transform: rotate(360deg) scale(1);
    }
}

/* Color Bomb (Match 5 in a row) - Rainbow spinning orb */
.gem-colorbomb .gem-inner {
    background: radial-gradient(circle at 35% 35%, #ffffff, #ff00ff 20%, #00ffff 40%, #ffff00 60%, #ff0000 80%, #000000 100%);
    animation: rainbow-rotate 3s infinite linear;
    box-shadow: 0 4px 15px rgba(255, 255, 255, 0.5), 0 0 25px rgba(255, 0, 255, 0.8), 0 0 40px rgba(0, 255, 255, 0.6);
}

@keyframes rainbow-rotate {
    0% {
        transform: rotate(0deg);
        filter: hue-rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
        filter: hue-rotate(360deg);
    }
}

/* Paper Plane Gem (Match 4 / 2x2) - Glowing paper plane icon overlay */
.gem-paperplane .gem-inner {
    border: 2px solid rgba(255, 255, 255, 0.9);
    box-shadow: 0 0 12px #00ffff, 0 0 20px rgba(0, 255, 255, 0.6);
}

.gem-paperplane .gem-inner::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 24px;
    height: 24px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M90 20.1L10 40.2l21 11.8 4.8 13.1 0-12.7 35.8-19.2ZM90 20.1L71.6 33.2 43 56l-4.1 20.9 7.8-10.1L62.5 79.9Z' fill='white'/%3E%3C/svg%3E") no-repeat center / contain;
    filter: drop-shadow(0 0 8px #00ffff) drop-shadow(0 0 14px #ffffff);
    pointer-events: none;
    z-index: 5;
    animation: paperplane-hover 1.5s infinite ease-in-out alternate;
}

@keyframes paperplane-hover {
    0% {
        transform: translate(-50%, -50%) scale(1) rotate(-8deg);
    }
    100% {
        transform: translate(-50%, -50%) scale(1.15) rotate(8deg);
    }
}

.flying-paperplane {
    position: absolute;
    width: 28px;
    height: 28px;
    pointer-events: none;
    z-index: 20;
    transition: all 0.8s cubic-bezier(0.25, 1, 0.5, 1);
    transform: translate(-50%, -50%) rotate(0deg);
}

.flying-paperplane svg {
    width: 100%;
    height: 100%;
    filter: drop-shadow(0 0 8px #00ffff) drop-shadow(0 0 16px #ffffff);
}

/* Match pop out animation (played before removal) */
.gem.crushing {
    animation: gem-pop-out 0.22s ease-out forwards;
    pointer-events: none;
}

@keyframes gem-pop-out {
    0% {
        transform: scale(1);
        opacity: 1;
    }

    100% {
        transform: scale(1.4);
        opacity: 0;
    }
}

/* Falling delay modifier to override transitions for spawn drops */
.gem.spawn-drop {
    transition: top 0.4s cubic-bezier(0.6, -0.28, 0.735, 0.045);
}

/* Screen Shake Effect */
.shake-screen {
    animation: screen-shake 0.35s ease-out;
}

@keyframes screen-shake {

    0%,
    100% {
        transform: translate(0, 0);
    }

    10%,
    30%,
    50%,
    70%,
    90% {
        transform: translate(-3px, -2px);
    }

    20%,
    40%,
    60%,
    80% {
        transform: translate(3px, 2px);
    }
}

/* ==========================================================================
   Particles Layer
   ========================================================================== */
.particles-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 3;
}

.particle {
    position: absolute;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: var(--color-blue);
    animation: particle-blast 0.6s cubic-bezier(0.1, 0.8, 0.25, 1) forwards;
}

@keyframes particle-blast {
    0% {
        transform: translate(-50%, -50%) scale(1) translate(0, 0);
        opacity: 1;
    }

    100% {
        transform: translate(-50%, -50%) scale(0) translate(var(--tx), var(--ty));
        opacity: 0;
    }
}

/* Floating Scores */
.floating-score {
    position: absolute;
    color: var(--color-yellow);
    font-weight: 800;
    font-size: 18px;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.8), var(--glow-yellow);
    pointer-events: none;
    z-index: 10;
    animation: score-float 0.8s ease-out forwards;
}

@keyframes score-float {
    0% {
        transform: translate(-50%, -50%) translateY(0);
        opacity: 1;
    }

    100% {
        transform: translate(-50%, -50%) translateY(-40px);
        opacity: 0;
    }
}

/* ==========================================================================
   Modals & Overlays (Glassmorphic)
   ========================================================================== */
.modal-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(5, 6, 15, 0.75);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    z-index: 1000;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 24px;
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--transition-normal);
}

.modal-overlay.active {
    opacity: 1;
    pointer-events: auto;
}

.glass-modal {
    background: rgba(20, 22, 45, 0.8);
    border: 1px solid var(--glass-border);
    border-radius: 32px;
    padding: 36px 28px;
    width: 100%;
    max-width: 320px;
    box-shadow: 0 24px 50px rgba(0, 0, 0, 0.6), inset 0 1px 1px rgba(255, 255, 255, 0.1);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    transform: scale(0.9);
    transition: transform var(--transition-normal);
}

.modal-overlay.active .glass-modal {
    transform: scale(1);
}

.glass-modal h2 {
    font-size: 28px;
    font-weight: 800;
    text-transform: uppercase;
    margin-bottom: 8px;
    background: linear-gradient(135deg, #fff, #8d94ba);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.modal-subtitle {
    font-size: 13px;
    color: var(--color-text-muted);
    margin-bottom: 24px;
}

.modal-icon {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

.icon-success {
    background: linear-gradient(135deg, var(--color-green), #00a86b);
    box-shadow: var(--glow-green);
}

.icon-success svg {
    fill: #fff;
    width: 36px;
    height: 36px;
}

.icon-failed {
    background: linear-gradient(135deg, var(--color-red), #c3002f);
    box-shadow: var(--glow-red);
}

.icon-failed svg {
    fill: #fff;
    width: 36px;
    height: 36px;
}

.modal-buttons {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
}

.modal-buttons .btn {
    width: 100%;
}

/* Stars Achievement Graphic */
.stars-container {
    display: flex;
    gap: 8px;
    margin-bottom: 24px;
}

.stars-container .star {
    font-size: 36px;
    color: rgba(255, 255, 255, 0.1);
    transition: all 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.stars-container .star.active {
    color: var(--color-yellow);
    text-shadow: 0 0 15px rgba(255, 232, 83, 0.7);
    transform: scale(1.15);
}

.modal-score-summary {
    background: rgba(0, 0, 0, 0.25);
    border-radius: 18px;
    width: 100%;
    padding: 16px;
    margin-bottom: 24px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.summary-row {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 600;
    color: var(--color-text-muted);
}

.summary-row .highlight {
    color: var(--color-yellow);
    font-size: 16px;
    font-weight: 800;
    text-shadow: var(--glow-yellow);
}

/* Settings Styling */
.settings-list {
    display: flex;
    flex-direction: column;
    gap: 20px;
    width: 100%;
    margin-top: 10px;
}

.settings-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    font-weight: 600;
    font-size: 14px;
}

/* Custom Toggle Switch */
.toggle-switch {
    position: relative;
    display: inline-block;
    width: 50px;
    height: 26px;
}

.toggle-switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

.slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(255, 255, 255, 0.08);
    border: 1px solid var(--glass-border);
    transition: .3s;
    border-radius: 34px;
}

.slider:before {
    position: absolute;
    content: "";
    height: 18px;
    width: 18px;
    left: 3px;
    bottom: 3px;
    background-color: #fff;
    transition: .3s;
    border-radius: 50%;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
}

input:checked+.slider {
    background-color: var(--color-blue);
    box-shadow: 0 0 10px rgba(0, 210, 255, 0.4);
}

input:checked+.slider:before {
    transform: translateX(24px);
}

/* ==========================================================================
   Mobile-First Overrides (When viewing on an actual mobile device)
   ========================================================================== */
@media (max-width: 480px) {
    body {
        background-color: var(--bg-app);
    }

    .app-container {
        background: var(--bg-app);
    }

    .phone-frame {
        width: 100%;
        height: 100vh;
        border-radius: 0;
        border: none;
        box-shadow: none;
    }

    .notch {
        display: none;
        /* Hide notch on real mobile devices to let viewport-fit handle it */
    }

    .screen {
        padding-top: calc(12px + env(safe-area-inset-top));
        padding-bottom: calc(12px + env(safe-area-inset-bottom));
        padding-left: 12px;
        padding-right: 12px;
    }
}

/* Tutorial Hint Banner */
.tutorial-banner {
    background: linear-gradient(135deg, rgba(0, 210, 255, 0.25), rgba(157, 78, 221, 0.25));
    border: 1px solid var(--glass-border);
    border-radius: 12px;
    padding: 8px 14px;
    margin: 0 16px 10px 16px;
    font-size: 13px;
    font-weight: 600;
    color: var(--color-text);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    text-align: center;
    backdrop-filter: blur(10px);
    box-shadow: 0 4px 15px rgba(0, 210, 255, 0.2);
}

.tutorial-card {
    border-color: rgba(0, 245, 160, 0.4);
    background: linear-gradient(135deg, rgba(0, 245, 160, 0.1), rgba(0, 210, 255, 0.1));
}

/* Tutorial Highlight for target gems */
.gem.tutorial-highlight {
    z-index: 25;
}

.gem.tutorial-highlight .gem-inner {
    animation: tutorial-pulse-glow 1.2s infinite alternate ease-in-out;
    box-shadow: 0 0 16px 5px #ffd700, 0 0 28px 10px rgba(255, 215, 0, 0.7);
    border: 2px solid #ffffff;
}

@keyframes tutorial-pulse-glow {
    0% {
        transform: scale(1.05);
        box-shadow: 0 0 14px 4px #ffd700, 0 0 22px 7px rgba(255, 215, 0, 0.6);
    }
    100% {
        transform: scale(1.22);
        box-shadow: 0 0 26px 10px #ffffff, 0 0 40px 15px #ffd700;
    }
}

/* Idle Move Hint Highlight ("iluminando levemente") */
.gem.hint-highlight {
    z-index: 20;
}

.gem.hint-highlight .gem-inner {
    animation: gem-hint-glow 1.4s infinite ease-in-out alternate;
    outline: 2px solid rgba(255, 255, 255, 0.7);
    outline-offset: 1px;
}

@keyframes gem-hint-glow {
    0% {
        transform: scale(1);
        box-shadow: 0 4px 10px rgba(0, 0, 0, 0.4), 0 0 8px rgba(255, 255, 255, 0.4);
        outline-color: rgba(255, 255, 255, 0.4);
        filter: brightness(1);
    }
    50% {
        transform: scale(1.12);
        box-shadow: 0 4px 10px rgba(0, 0, 0, 0.4), 0 0 16px 4px #ffffff, 0 0 28px 8px rgba(255, 255, 255, 0.75);
        outline-color: rgba(255, 255, 255, 1);
        filter: brightness(1.3);
    }
    100% {
        transform: scale(1);
        box-shadow: 0 4px 10px rgba(0, 0, 0, 0.4), 0 0 8px rgba(255, 255, 255, 0.4);
        outline-color: rgba(255, 255, 255, 0.4);
        filter: brightness(1);
    }
}

/* ==========================================================================
   Coins Economy & Booster Bar (Facilitadores)
   ========================================================================== */
.coin-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: rgba(255, 234, 0, 0.12);
    border: 1px solid rgba(255, 234, 0, 0.4);
    border-radius: 16px;
    padding: 4px 10px;
    font-size: 13px;
    font-weight: 800;
    color: var(--color-yellow);
    box-shadow: 0 0 10px rgba(255, 234, 0, 0.15);
    user-select: none;
}

.coin-icon {
    font-size: 14px;
    line-height: 1;
}

.booster-bar {
    display: flex;
    justify-content: space-around;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    margin-top: 6px;
    background: var(--glass-bg);
    border: 1px solid var(--glass-border);
    border-radius: 20px;
    backdrop-filter: blur(10px);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
    z-index: 10;
}

.btn-booster {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 14px;
    padding: 6px 10px;
    cursor: pointer;
    transition: all var(--transition-fast);
    color: var(--color-text);
    flex: 1;
    max-width: 75px;
}

.btn-booster:hover {
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.3);
    transform: translateY(-2px);
}

.btn-booster:active {
    transform: translateY(1px) scale(0.96);
}

.btn-booster.booster-active {
    background: rgba(0, 240, 255, 0.2);
    border-color: var(--color-blue);
    box-shadow: 0 0 15px rgba(0, 240, 255, 0.4);
    animation: booster-pulse 1.2s infinite alternate ease-in-out;
}

@keyframes booster-pulse {
    0% { transform: scale(1); box-shadow: 0 0 8px rgba(0, 240, 255, 0.3); }
    100% { transform: scale(1.05); box-shadow: 0 0 16px rgba(0, 240, 255, 0.6); }
}

.booster-icon {
    font-size: 18px;
    line-height: 1;
}

.booster-cost {
    font-size: 10px;
    font-weight: 700;
    color: var(--color-yellow);
    letter-spacing: 0.5px;
}

.board-wrapper.hammer-mode {
    cursor: crosshair !important;
}

.board-wrapper.blaster-mode {
    cursor: crosshair !important;
}

/* ==========================================================================
   Level Win Transition & Board Roll System
   ========================================================================== */
.level-win-banner {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0.7);
    background: rgba(14, 18, 34, 0.94);
    border: 2px solid rgba(255, 215, 0, 0.7);
    box-shadow: 0 0 35px rgba(255, 215, 0, 0.45), inset 0 0 20px rgba(255, 215, 0, 0.15);
    backdrop-filter: blur(12px);
    padding: 16px 28px;
    border-radius: 20px;
    text-align: center;
    z-index: 100;
    pointer-events: none;
    animation: levelWinPop 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
}

@keyframes levelWinPop {
    0% {
        transform: translate(-50%, -50%) scale(0.6);
        opacity: 0;
    }
    100% {
        transform: translate(-50%, -50%) scale(1);
        opacity: 1;
    }
}

.level-win-banner-title {
    font-size: 1.35rem;
    font-weight: 800;
    background: linear-gradient(135deg, #ffffff, #ffd700, #ff8c00);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    text-shadow: 0 0 15px rgba(255, 215, 0, 0.5);
    letter-spacing: 1px;
}

.level-win-banner-reward {
    font-size: 1.5rem;
    font-weight: 900;
    color: #ffd700;
    margin-top: 6px;
    text-shadow: 0 0 12px rgba(255, 215, 0, 0.8);
}

.final-victory-banner {
    border-color: rgba(0, 240, 255, 0.8);
    box-shadow: 0 0 40px rgba(0, 240, 255, 0.5);
}

.flying-coin-particle {
    position: fixed;
    font-size: 1.6rem;
    z-index: 9999;
    pointer-events: none;
    transform: translate(-50%, -50%);
    filter: drop-shadow(0 0 8px rgba(255, 215, 0, 0.8));
    will-change: transform, opacity;
}

.coin-collect-impact {
    animation: coinImpactBounce 0.25s ease-out;
    border-color: #ffd700 !important;
    box-shadow: 0 0 18px rgba(255, 215, 0, 0.9) !important;
}

@keyframes coinImpactBounce {
    0% { transform: scale(1); }
    50% { transform: scale(1.28); }
    100% { transform: scale(1); }
}

.board-scroll-exit {
    animation: boardScrollDownExit 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
    pointer-events: none;
}

@keyframes boardScrollDownExit {
    0% {
        transform: translateY(0) scale(1);
        opacity: 1;
    }
    100% {
        transform: translateY(115%) scale(0.92);
        opacity: 0;
        filter: blur(4px);
    }
}

.board-scroll-enter {
    animation: boardScrollDownEnter 0.5s cubic-bezier(0.2, 0.85, 0.25, 1) forwards !important;
    pointer-events: none;
}

@keyframes boardScrollDownEnter {
    0% {
        transform: translateY(-115%) scale(0.92);
        opacity: 0;
        filter: blur(4px);
    }
    100% {
        transform: translateY(0) scale(1);
        opacity: 1;
        filter: blur(0);
    }
}

.level-intro-toast {
    position: absolute;
    top: 40%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(10, 14, 26, 0.9);
    border: 1px solid rgba(0, 240, 255, 0.7);
    box-shadow: 0 0 25px rgba(0, 240, 255, 0.4);
    color: #00f0ff;
    font-size: 1.3rem;
    font-weight: 800;
    padding: 12px 24px;
    border-radius: 16px;
    letter-spacing: 1.5px;
    z-index: 100;
    pointer-events: none;
    animation: levelIntroFade 0.65s ease-out forwards;
}

@keyframes levelIntroFade {
    0% { transform: translate(-50%, -50%) scale(0.7); opacity: 0; }
    30% { transform: translate(-50%, -50%) scale(1.05); opacity: 1; }
    75% { transform: translate(-50%, -50%) scale(1); opacity: 1; }
    100% { transform: translate(-50%, -50%) scale(1.08); opacity: 0; }
}

/* ==========================================================================
   Rewarded Ad Extra Moves System
   ========================================================================== */
.btn-ad-reward {
    background: linear-gradient(135deg, #00f5a0 0%, #00d9f5 100%);
    color: #0b0e14;
    font-weight: 800;
    width: 100%;
    margin-bottom: 8px;
    box-shadow: 0 4px 15px rgba(0, 245, 160, 0.4);
    animation: adPulseGlow 2s infinite ease-in-out;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: none;
    cursor: pointer;
}

.btn-ad-reward .btn-icon {
    width: 20px;
    height: 20px;
    fill: currentColor;
}

@keyframes adPulseGlow {
    0%, 100% {
        transform: scale(1);
        box-shadow: 0 4px 15px rgba(0, 245, 160, 0.4);
    }
    50% {
        transform: scale(1.02);
        box-shadow: 0 6px 20px rgba(0, 245, 160, 0.75);
    }
}

.modal-ad-card {
    max-width: 340px;
    text-align: center;
    padding: 24px 20px;
    background: rgba(14, 18, 34, 0.96);
    border: 1px solid rgba(0, 245, 160, 0.4);
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.8), 0 0 25px rgba(0, 245, 160, 0.2);
}

.ad-badge-top {
    display: inline-block;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1px;
    color: var(--color-yellow);
    background: rgba(255, 215, 0, 0.15);
    border: 1px solid rgba(255, 215, 0, 0.35);
    padding: 3px 10px;
    border-radius: 12px;
    margin-bottom: 14px;
}

.ad-video-mockup {
    background: rgba(0, 0, 0, 0.4);
    border: 1px dashed rgba(255, 255, 255, 0.15);
    border-radius: 16px;
    padding: 24px 16px;
    margin-bottom: 18px;
}

.ad-play-pulse {
    font-size: 42px;
    margin-bottom: 8px;
    animation: adIconBounce 1s infinite alternate ease-in-out;
}

@keyframes adIconBounce {
    0% { transform: scale(0.95); }
    100% { transform: scale(1.1); }
}

.ad-video-title {
    font-size: 18px;
    font-weight: 800;
    color: #fff;
    margin-bottom: 4px;
}

.ad-video-desc {
    font-size: 12px;
    color: rgba(255, 255, 255, 0.7);
    margin-bottom: 14px;
}

.ad-progress-container {
    width: 100%;
    height: 8px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 4px;
    overflow: hidden;
    margin-bottom: 10px;
}

.ad-progress-bar {
    width: 0%;
    height: 100%;
    background: linear-gradient(90deg, #00f5a0, #00d9f5);
    transition: width 0.1s linear;
}

.ad-countdown {
    font-size: 13px;
    font-weight: 700;
    color: var(--color-blue);
}

.ad-actions {
    display: flex;
    gap: 10px;
    justify-content: center;
}

.btn-claim {
    background: linear-gradient(135deg, #ffd700 0%, #ff8c00 100%);
    color: #000;
    font-weight: 800;
}