git / moonbite-network / static/style.css · raw

/* ========================================================================== *//* MoonBite Dashboard — Cosmic Mining Design System                            *//* ========================================================================== */:root {    /* Dark Mode (default) — deep space palette */    --bg-primary: #0B0D12;    --bg-secondary: #12151d;    --bg-tertiary: #161A22;    --text-primary: #F5F2EA;    --text-secondary: #8A8580;    --border-color: rgba(245, 242, 234, 0.09);    --card-bg: rgba(245, 242, 234, 0.035);    --card-bg-solid: #12151d;    --card-shadow: 0 8px 30px rgba(0, 0, 0, 0.45);    --glass-blur: blur(18px);    /* Accent gradient palette */    --primary-color: #D9A441;    --primary-color-2: #B8863B;    --success-color: #2E9E6B;    --danger-color: #C8402F;    --warning-color: #D9A441;    --info-color: #B8863B;    --secondary-color: #8A8580;    --gradient-primary: linear-gradient(135deg, #D9A441 0%, #B8863B 100%);    --gradient-success: linear-gradient(135deg, #2E9E6B 0%, #B8863B 100%);    --gradient-danger: linear-gradient(135deg, #C8402F 0%, #B8863B 100%);    --gradient-gold: linear-gradient(135deg, #D9A441 0%, #C8402F 100%);    --glow-primary: 0 0 24px rgba(124, 92, 255, 0.45);    --glow-success: 0 0 24px rgba(34, 229, 168, 0.45);    --glow-danger: 0 0 24px rgba(255, 84, 112, 0.4);    /* Typography */    --font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;    --font-mono: ui-monospace, "Monaco", "Menlo", "Consolas", monospace;    /* Spacing */    --spacing-xs: 0.25rem;    --spacing-sm: 0.5rem;    --spacing-md: 1rem;    --spacing-lg: 1.5rem;    --spacing-xl: 2rem;    --spacing-2xl: 3rem;    /* Border Radius */    --border-radius-sm: 0.4rem;    --border-radius: 0.85rem;    --border-radius-lg: 1.4rem;    /* Transitions */    --transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);    --transition-slow: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);}/* Light Mode Override */html[data-theme="light"] {    --bg-primary: #f5f6fb;    --bg-secondary: #ffffff;    --bg-tertiary: #eceef7;    --text-primary: #161a2c;    --text-secondary: #6b6862;    --border-color: rgba(22, 26, 44, 0.09);    --card-bg: rgba(245, 242, 234, 0.7);    --card-bg-solid: #ffffff;    --card-shadow: 0 8px 30px rgba(85, 90, 150, 0.14);    --glow-primary: 0 0 20px rgba(124, 92, 255, 0.18);    --glow-success: 0 0 20px rgba(34, 229, 168, 0.18);    --glow-danger: 0 0 20px rgba(255, 84, 112, 0.16);}/* ========================================================================== *//* Reset and Base Styles *//* ========================================================================== */* {    margin: 0;    padding: 0;    box-sizing: border-box;}html, body {    height: 100%;    background-color: var(--bg-primary);    color: var(--text-primary);    font-family: var(--font-family);    line-height: 1.5;}body {    display: flex;    flex-direction: column;    position: relative;    overflow-x: hidden;    transition: background-color 0.4s ease, color 0.4s ease;}/* Cosmic nebula backdrop — pure CSS, no assets */body::before {    content: "";    position: fixed;    inset: 0;    z-index: -2;    background:        radial-gradient(ellipse 900px 600px at 12% -10%, rgba(124, 92, 255, 0.22), transparent 60%),        radial-gradient(ellipse 700px 500px at 110% 10%, rgba(52, 211, 255, 0.16), transparent 55%),        radial-gradient(ellipse 800px 600px at 50% 120%, rgba(34, 229, 168, 0.10), transparent 55%);    pointer-events: none;    transition: opacity 0.4s ease;}html[data-theme="light"] body::before {    opacity: 0.6;}/* Starfield speckle */body::after {    content: "";    position: fixed;    inset: 0;    z-index: -1;    background-image:        radial-gradient(1.5px 1.5px at 20% 30%, rgba(245, 242, 234, 0.55), transparent),        radial-gradient(1.5px 1.5px at 70% 65%, rgba(245, 242, 234, 0.4), transparent),        radial-gradient(1px 1px at 85% 20%, rgba(245, 242, 234, 0.5), transparent),        radial-gradient(1px 1px at 40% 80%, rgba(245, 242, 234, 0.35), transparent),        radial-gradient(1.5px 1.5px at 55% 10%, rgba(245, 242, 234, 0.4), transparent),        radial-gradient(1px 1px at 10% 60%, rgba(245, 242, 234, 0.3), transparent);    background-repeat: repeat;    background-size: 600px 600px;    opacity: 0.5;    pointer-events: none;}html[data-theme="light"] body::after {    opacity: 0;}/* ========================================================================== *//* Container and Layout *//* ========================================================================== */.container {    display: flex;    flex-direction: column;    min-height: 100vh;    max-width: 100%;}.main-content {    flex: 1;    padding: var(--spacing-xl);    max-width: 1200px;    margin: 0 auto;    width: 100%;}/* ========================================================================== *//* Navigation Bar *//* ========================================================================== */.navbar {    display: flex;    align-items: center;    justify-content: space-between;    padding: var(--spacing-md) var(--spacing-xl);    background-color: var(--card-bg);    backdrop-filter: var(--glass-blur);    -webkit-backdrop-filter: var(--glass-blur);    border-bottom: 1px solid var(--border-color);    gap: var(--spacing-xl);    position: sticky;    top: 0;    z-index: 100;}.navbar-brand h1 {    font-size: 1.4rem;    font-weight: 700;    letter-spacing: -0.02em;    background: var(--gradient-primary);    -webkit-background-clip: text;    background-clip: text;    color: transparent;}.navbar-nav {    display: flex;    list-style: none;    gap: var(--spacing-lg);}.nav-link {    text-decoration: none;    color: var(--text-secondary);    font-weight: 500;    transition: var(--transition);    padding: var(--spacing-sm) var(--spacing-md);    border-bottom: 2px solid transparent;    position: relative;}.nav-link:hover {    color: var(--text-primary);}.nav-link.active {    color: var(--text-primary);    border-bottom-color: transparent;}.nav-link.active::after {    content: "";    position: absolute;    left: var(--spacing-md);    right: var(--spacing-md);    bottom: -1px;    height: 2px;    background: var(--gradient-primary);    border-radius: 2px;    box-shadow: 0 0 8px rgba(124, 92, 255, 0.7);}.theme-toggle {    margin-left: auto;}.theme-btn {    padding: var(--spacing-sm) var(--spacing-md);    background-color: var(--bg-tertiary);    border: 1px solid var(--border-color);    border-radius: var(--border-radius);    cursor: pointer;    font-size: 0.9rem;    font-family: var(--font-family);    transition: var(--transition);    color: var(--text-primary);}.theme-btn:hover {    border-color: var(--primary-color);    box-shadow: var(--glow-primary);    transform: translateY(-1px);}/* ========================================================================== *//* Hero Section *//* ========================================================================== */.hero {    text-align: center;    margin-bottom: var(--spacing-2xl);    padding: var(--spacing-2xl) 0 var(--spacing-xl);}.hero h2 {    font-size: clamp(2rem, 4vw, 3rem);    font-weight: 700;    letter-spacing: -0.03em;    margin-bottom: var(--spacing-md);    background: linear-gradient(135deg, var(--text-primary) 30%, var(--primary-color) 100%);    -webkit-background-clip: text;    background-clip: text;    color: transparent;}.hero p {    font-size: 1.1rem;    color: var(--text-secondary);    max-width: 560px;    margin: 0 auto;}/* ========================================================================== *//* Cards Grid *//* ========================================================================== */.cards-grid {    display: grid;    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));    gap: var(--spacing-lg);    margin-bottom: var(--spacing-2xl);}.card {    background-color: var(--card-bg);    backdrop-filter: var(--glass-blur);    -webkit-backdrop-filter: var(--glass-blur);    border-radius: var(--border-radius-lg);    border: 1px solid var(--border-color);    box-shadow: var(--card-shadow);    overflow: hidden;    transition: var(--transition-slow);    animation: card-rise 0.5s cubic-bezier(0.4, 0, 0.2, 1) backwards;}@keyframes card-rise {    from { opacity: 0; transform: translateY(14px); }    to { opacity: 1; transform: translateY(0); }}.card:hover {    box-shadow: var(--card-shadow), var(--glow-primary);    transform: translateY(-3px);    border-color: rgba(124, 92, 255, 0.4);}.card-full {    grid-column: 1 / -1;}.card-header {    padding: var(--spacing-lg);    background: linear-gradient(180deg, rgba(124, 92, 255, 0.08), transparent);    border-bottom: 1px solid var(--border-color);    font-weight: 600;    font-size: 1.05rem;    color: var(--text-primary);    letter-spacing: -0.01em;}.card-body {    padding: var(--spacing-lg);}.card-value {    font-family: var(--font-mono);    font-size: 2rem;    font-weight: 700;    background: var(--gradient-primary);    -webkit-background-clip: text;    background-clip: text;    color: transparent;    margin-bottom: var(--spacing-md);    letter-spacing: -0.02em;}.card-subtitle {    font-size: 0.9rem;    color: var(--text-secondary);}.card-action {    display: flex;    flex-direction: column;}.card-action .card-body {    flex: 1;    display: flex;    flex-direction: column;}.card-action p {    flex: 1;    margin-bottom: var(--spacing-lg);    color: var(--text-secondary);}/* ========================================================================== *//* Buttons *//* ========================================================================== */.btn {    padding: var(--spacing-sm) var(--spacing-lg);    border: none;    border-radius: var(--border-radius);    font-size: 1rem;    font-weight: 600;    font-family: var(--font-family);    cursor: pointer;    transition: var(--transition);    text-decoration: none;    display: inline-block;    text-align: center;    letter-spacing: -0.01em;}.btn:active:not(:disabled) {    transform: scale(0.97);}.btn:disabled {    opacity: 0.5;    cursor: not-allowed;}.btn-primary {    background: var(--gradient-primary);    color: #ffffff;}.btn-primary:hover:not(:disabled) {    box-shadow: var(--glow-primary);    transform: translateY(-2px);}.btn-secondary {    background-color: var(--bg-tertiary);    color: var(--text-primary);    border: 1px solid var(--border-color);}.btn-secondary:hover:not(:disabled) {    border-color: var(--primary-color);    box-shadow: var(--glow-primary);    transform: translateY(-2px);}.btn-success {    background: var(--gradient-success);    color: #06261c;}.btn-success:hover:not(:disabled) {    box-shadow: var(--glow-success);    transform: translateY(-2px);}.btn-danger {    background: var(--gradient-danger);    color: #ffffff;}.btn-danger:hover:not(:disabled) {    box-shadow: var(--glow-danger);    transform: translateY(-2px);}.btn-info {    background: linear-gradient(135deg, #B8863B, #D9A441);    color: #06172a;}.btn-info:hover:not(:disabled) {    box-shadow: 0 0 24px rgba(52, 211, 255, 0.4);    transform: translateY(-2px);}.btn-small {    padding: var(--spacing-xs) var(--spacing-md);    font-size: 0.9rem;}.btn-large {    padding: var(--spacing-md) var(--spacing-xl);    font-size: 1.1rem;    width: 100%;}/* ========================================================================== *//* Forms *//* ========================================================================== */.form-group {    margin-bottom: var(--spacing-lg);}.form-group label {    display: block;    margin-bottom: var(--spacing-sm);    font-weight: 600;    color: var(--text-primary);}.form-input,input[type="text"],input[type="number"] {    width: 100%;    padding: var(--spacing-md);    border: 1px solid var(--border-color);    border-radius: var(--border-radius);    background-color: var(--bg-tertiary);    color: var(--text-primary);    font-size: 1rem;    font-family: var(--font-family);    transition: var(--transition);}.form-input:focus,input[type="text"]:focus,input[type="number"]:focus {    outline: none;    border-color: var(--primary-color);    box-shadow: 0 0 0 3px rgba(124, 92, 255, 0.18);}.form-input::placeholder {    color: var(--text-secondary);}.form-group small {    display: block;    margin-top: var(--spacing-xs);    color: var(--text-secondary);    font-size: 0.9rem;}.form-group .link {    color: var(--primary-color-2);    text-decoration: none;}.form-group .link:hover {    text-decoration: underline;}.form-actions {    display: flex;    gap: var(--spacing-md);    margin-top: var(--spacing-xl);}.form-actions button {    flex: 1;}.mining-form {    max-width: 500px;}/* ========================================================================== *//* Mining Orb — bespoke animated status indicator *//* ========================================================================== */.mining-orb-wrap {    display: flex;    align-items: center;    justify-content: center;    padding: var(--spacing-xl) 0 var(--spacing-md);}.mining-orb {    position: relative;    width: 128px;    height: 128px;    display: flex;    align-items: center;    justify-content: center;}.mining-orb .orb-core {    width: 68px;    height: 68px;    border-radius: 50%;    background: var(--gradient-primary);    box-shadow: 0 0 40px rgba(124, 92, 255, 0.55);    display: flex;    align-items: center;    justify-content: center;    font-size: 1.8rem;    z-index: 2;    animation: orb-pulse 1.8s ease-in-out infinite;}.mining-orb .orb-ring {    position: absolute;    inset: 0;    border-radius: 50%;    border: 2px solid transparent;    border-top-color: var(--primary-color);    border-right-color: var(--primary-color-2);    animation: orb-spin 1.4s linear infinite;}.mining-orb .orb-ring.ring-2 {    inset: 14px;    border-top-color: transparent;    border-right-color: transparent;    border-bottom-color: var(--success-color);    border-left-color: var(--primary-color-2);    animation-duration: 2.2s;    animation-direction: reverse;    opacity: 0.7;}@keyframes orb-spin {    to { transform: rotate(360deg); }}@keyframes orb-pulse {    0%, 100% { transform: scale(1); }    50% { transform: scale(1.08); }}.mining-orb.idle .orb-ring { animation-play-state: paused; opacity: 0.25; }.mining-orb.idle .orb-core { animation: none; box-shadow: 0 0 20px rgba(124, 92, 255, 0.25); opacity: 0.7; }/* ========================================================================== *//* Progress Bar *//* ========================================================================== */.progress-item {    margin-bottom: var(--spacing-xl);}.progress-label {    display: flex;    justify-content: space-between;    margin-bottom: var(--spacing-md);    font-weight: 600;    font-size: 1rem;}.progress-bar {    width: 100%;    height: 26px;    background-color: var(--bg-tertiary);    border-radius: 999px;    overflow: hidden;    border: 1px solid var(--border-color);    position: relative;}.progress-fill {    height: 100%;    background: var(--gradient-primary);    box-shadow: 0 0 16px rgba(124, 92, 255, 0.6);    width: 0%;    transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);    display: flex;    align-items: center;    justify-content: center;    color: white;    font-weight: 600;    font-size: 0.85rem;    border-radius: 999px;    position: relative;    overflow: hidden;}.progress-fill::after {    content: "";    position: absolute;    inset: 0;    background: linear-gradient(        110deg,        transparent 20%,        rgba(245, 242, 234, 0.35) 45%,        transparent 70%    );    background-size: 200% 100%;    animation: shimmer 1.6s linear infinite;}@keyframes shimmer {    0% { background-position: 200% 0; }    100% { background-position: -60% 0; }}/* ========================================================================== *//* Mining Stats *//* ========================================================================== */.mining-stats {    display: grid;    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));    gap: var(--spacing-lg);    margin-top: var(--spacing-lg);    padding-top: var(--spacing-lg);    border-top: 1px solid var(--border-color);}.stat {    text-align: center;    padding: var(--spacing-md);    border-radius: var(--border-radius);    background: var(--bg-tertiary);    border: 1px solid var(--border-color);    transition: var(--transition);}.stat:hover {    border-color: rgba(124, 92, 255, 0.35);    transform: translateY(-2px);}.stat-label {    font-size: 0.82rem;    text-transform: uppercase;    letter-spacing: 0.06em;    color: var(--text-secondary);    margin-bottom: var(--spacing-sm);}.stat-value {    font-family: var(--font-mono);    font-size: 1.3rem;    font-weight: 700;    color: var(--primary-color-2);}/* ========================================================================== *//* Status pill (mining status display) *//* ========================================================================== */#miningStatusDisplay {    display: inline-flex;    align-items: center;    gap: var(--spacing-sm);}/* ========================================================================== *//* Addresses List *//* ========================================================================== */.addresses-list {    display: flex;    flex-direction: column;    gap: var(--spacing-md);}.address-item {    display: flex;    align-items: center;    justify-content: space-between;    padding: var(--spacing-lg);    background-color: var(--bg-tertiary);    border-radius: var(--border-radius);    border: 1px solid var(--border-color);    transition: var(--transition);}.address-item:hover {    border-color: rgba(124, 92, 255, 0.35);    box-shadow: var(--glow-primary);}.address-info {    flex: 1;}.address-number {    font-size: 0.9rem;    color: var(--text-secondary);    margin-bottom: var(--spacing-sm);}.address-value {    font-family: var(--font-mono);    font-size: 0.9rem;    word-break: break-all;    background-color: var(--bg-secondary);    padding: var(--spacing-sm);    border-radius: var(--border-radius-sm);    display: block;    border: 1px solid var(--border-color);}/* ========================================================================== *//* Balance Summary *//* ========================================================================== */.balance-summary {    display: grid;    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));    gap: var(--spacing-lg);}.balance-item {    text-align: center;    padding: var(--spacing-lg);    background-color: var(--bg-tertiary);    border-radius: var(--border-radius);    border: 1px solid var(--border-color);}.balance-label {    font-size: 0.9rem;    color: var(--text-secondary);    margin-bottom: var(--spacing-sm);}.balance-value {    font-family: var(--font-mono);    font-size: 1.8rem;    font-weight: 700;    background: var(--gradient-success);    -webkit-background-clip: text;    background-clip: text;    color: transparent;}/* ========================================================================== *//* Transactions List *//* ========================================================================== */.tx-list {    display: flex;    flex-direction: column;    gap: var(--spacing-md);}.tx-item {    display: flex;    align-items: center;    padding: var(--spacing-lg);    background-color: var(--bg-tertiary);    border-radius: var(--border-radius);    border: 1px solid var(--border-color);    border-left: 3px solid var(--primary-color);    transition: var(--transition);}.tx-item:hover {    transform: translateX(2px);    box-shadow: var(--glow-primary);}.tx-info {    flex: 1;}.tx-id {    font-family: var(--font-mono);    font-size: 0.9rem;    font-weight: 600;    margin-bottom: var(--spacing-sm);    color: var(--text-primary);}.tx-meta {    display: flex;    gap: var(--spacing-md);    align-items: center;    flex-wrap: wrap;}.tx-status {    font-size: 0.75rem;    padding: var(--spacing-xs) var(--spacing-sm);    border-radius: 999px;    font-weight: 700;    text-transform: uppercase;    letter-spacing: 0.04em;}.tx-status.confirmed {    background-color: rgba(34, 229, 168, 0.15);    color: #2E9E6B;    border: 1px solid rgba(34, 229, 168, 0.3);}.tx-status.pending {    background-color: rgba(255, 184, 77, 0.15);    color: #D9A441;    border: 1px solid rgba(255, 184, 77, 0.3);}.tx-detail {    font-size: 0.85rem;    color: var(--text-secondary);}/* ========================================================================== *//* Modal *//* ========================================================================== */.modal {    position: fixed;    top: 0;    left: 0;    right: 0;    bottom: 0;    background-color: rgba(5, 6, 13, 0.7);    backdrop-filter: blur(4px);    display: flex;    align-items: center;    justify-content: center;    z-index: 1000;    transition: var(--transition);}.modal.hidden {    display: none;}.modal-content {    background-color: var(--card-bg-solid);    border: 1px solid var(--border-color);    border-radius: var(--border-radius-lg);    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5), var(--glow-primary);    max-width: 600px;    width: 90%;    max-height: 90vh;    overflow-y: auto;}.modal-header {    display: flex;    align-items: center;    justify-content: space-between;    padding: var(--spacing-lg);    border-bottom: 1px solid var(--border-color);}.modal-header h3 {    font-size: 1.5rem;    color: var(--text-primary);}.close-btn {    background: none;    border: none;    font-size: 1.5rem;    cursor: pointer;    color: var(--text-secondary);    transition: var(--transition);}.close-btn:hover {    color: var(--text-primary);}.modal-body {    padding: var(--spacing-lg);}.detail-group {    margin-bottom: var(--spacing-lg);}.detail-group label {    display: block;    font-weight: 600;    margin-bottom: var(--spacing-sm);    color: var(--text-primary);}.detail-group code {    display: block;    background-color: var(--bg-tertiary);    padding: var(--spacing-md);    border-radius: var(--border-radius);    word-break: break-all;    margin-bottom: var(--spacing-md);    font-size: 0.85rem;    border: 1px solid var(--border-color);}.qr-placeholder {    text-align: center;    padding: var(--spacing-xl);    background-color: var(--bg-tertiary);    border-radius: var(--border-radius);    color: var(--text-secondary);}/* ========================================================================== *//* Status Messages *//* ========================================================================== */.status-message {    position: fixed;    bottom: var(--spacing-lg);    right: var(--spacing-lg);    padding: var(--spacing-md) var(--spacing-lg);    border-radius: var(--border-radius);    font-weight: 600;    z-index: 2000;    max-width: 400px;    background-color: var(--card-bg-solid);    backdrop-filter: var(--glass-blur);    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.4);    animation: toast-in 0.3s cubic-bezier(0.4, 0, 0.2, 1);}@keyframes toast-in {    from { opacity: 0; transform: translateY(10px); }    to { opacity: 1; transform: translateY(0); }}.status-message.hidden {    display: none;}.status-message.success {    color: #2E9E6B;    border: 1px solid rgba(34, 229, 168, 0.35);    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.4), 0 0 20px rgba(34, 229, 168, 0.2);}.status-message.error {    color: #C8402F;    border: 1px solid rgba(255, 84, 112, 0.35);    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.4), 0 0 20px rgba(255, 84, 112, 0.2);}.status-message.info {    color: #B8863B;    border: 1px solid rgba(52, 211, 255, 0.35);    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.4), 0 0 20px rgba(52, 211, 255, 0.2);}/* ========================================================================== *//* Utility Classes *//* ========================================================================== */.monospace {    font-family: var(--font-mono);}.link {    color: var(--primary-color-2);    text-decoration: none;    cursor: pointer;}.link:hover {    text-decoration: underline;}.hidden {    display: none !important;}.placeholder {    color: var(--text-secondary);    font-style: italic;    text-align: center;    padding: var(--spacing-lg);}.info-list {    list-style: none;    padding: 0;}.info-list li {    padding: var(--spacing-md) 0;    padding-left: var(--spacing-xl);    position: relative;    color: var(--text-secondary);    line-height: 1.6;}.info-list li:before {    content: "✓";    position: absolute;    left: 0;    color: var(--success-color);    font-weight: 700;}.quick-links {    display: flex;    gap: var(--spacing-lg);    margin-top: var(--spacing-2xl);    justify-content: center;    flex-wrap: wrap;}/* ========================================================================== *//* Scrollbar polish *//* ========================================================================== */::-webkit-scrollbar {    width: 10px;    height: 10px;}::-webkit-scrollbar-track {    background: var(--bg-primary);}::-webkit-scrollbar-thumb {    background: var(--bg-tertiary);    border-radius: 999px;}::-webkit-scrollbar-thumb:hover {    background: var(--primary-color);}/* ========================================================================== *//* Responsive Design *//* ========================================================================== */@media (max-width: 768px) {    .navbar {        flex-direction: column;        gap: var(--spacing-md);    }    .navbar-brand h1 {        font-size: 1.2rem;    }    .navbar-nav {        width: 100%;        justify-content: center;        gap: var(--spacing-md);    }    .theme-toggle {        margin-left: 0;        width: 100%;    }    .theme-btn {        width: 100%;    }    .main-content {        padding: var(--spacing-lg);    }    .hero h2 {        font-size: 1.8rem;    }    .cards-grid {        grid-template-columns: 1fr;    }    .mining-stats {        grid-template-columns: 1fr;    }    .form-actions {        flex-direction: column;    }    .modal-content {        width: 95%;    }    .status-message {        left: var(--spacing-lg);        right: var(--spacing-lg);        max-width: none;    }    .quick-links {        flex-direction: column;    }    .quick-links .btn {        width: 100%;    }}@media (max-width: 480px) {    :root {        --spacing-xl: 1.5rem;        --spacing-lg: 1rem;    }    .hero h2 {        font-size: 1.5rem;    }    .hero p {        font-size: 1rem;    }    .card-value {        font-size: 1.5rem;    }    .btn-large {        padding: var(--spacing-md) var(--spacing-lg);    }    .nav-link {        font-size: 0.9rem;        padding: var(--spacing-xs) var(--spacing-sm);    }    .mining-orb {        width: 96px;        height: 96px;    }    .mining-orb .orb-core {        width: 52px;        height: 52px;        font-size: 1.4rem;    }}/* ========================================================================== *//* Page Loader + Load-in Polish                                                *//* ========================================================================== */.page-loader {    position: fixed;    inset: 0;    z-index: 9999;    display: flex;    flex-direction: column;    align-items: center;    justify-content: center;    gap: var(--spacing-lg);    background: var(--bg-primary);    transition: opacity 0.5s ease, visibility 0.5s ease;}/* Fades away once the page signals it is ready */body.loaded .page-loader {    opacity: 0;    visibility: hidden;    pointer-events: none;}.page-loader .loader-orb {    position: relative;    width: 104px;    height: 104px;    display: flex;    align-items: center;    justify-content: center;}.page-loader .loader-moon {    position: relative;    width: 72px;    height: 72px;    border-radius: 50%;    background: var(--gradient-primary);    box-shadow: 0 0 45px rgba(124, 92, 255, 0.55);    animation: loader-pulse 1.5s ease-in-out infinite;}/* Crescent shadow carved into the glowing moon */.page-loader .loader-moon::after {    content: "";    position: absolute;    top: 6px;    right: 4px;    width: 56px;    height: 56px;    border-radius: 50%;    background: var(--bg-primary);    transition: background 0.4s ease;}.page-loader .loader-ring {    position: absolute;    inset: 0;    border-radius: 50%;    border: 2px solid transparent;    border-top-color: var(--primary-color);    border-right-color: var(--primary-color-2);    animation: loader-spin 1.1s linear infinite;}.page-loader .loader-text {    font-family: var(--font-mono);    font-size: 0.85rem;    letter-spacing: 0.18em;    text-transform: uppercase;    color: var(--text-secondary);    animation: loader-fade 1.5s ease-in-out infinite;}@keyframes loader-pulse {    0%, 100% { transform: scale(1); box-shadow: 0 0 40px rgba(124, 92, 255, 0.45); }    50% { transform: scale(1.07); box-shadow: 0 0 60px rgba(52, 211, 255, 0.6); }}@keyframes loader-spin {    to { transform: rotate(360deg); }}@keyframes loader-fade {    0%, 100% { opacity: 0.45; }    50% { opacity: 1; }}/* Content gently rises in after the loader clears */.main-content {    opacity: 0;    transform: translateY(8px);    transition: opacity 0.6s ease, transform 0.6s ease;}body.loaded .main-content {    opacity: 1;    transform: none;}@media (prefers-reduced-motion: reduce) {    .page-loader .loader-moon,    .page-loader .loader-ring,    .page-loader .loader-text { animation: none; }    .main-content { opacity: 1; transform: none; transition: none; }}/* ========================================================================== *//* VIRAL COMPONENTS — Global Stats + Shareable Receipts                     *//* ========================================================================== *//* Global Mining Stats Banner */.mb-stats-banner {    display: flex;    justify-content: space-around;    align-items: center;    background: linear-gradient(135deg, rgba(124, 92, 255, 0.15) 0%, rgba(52, 211, 255, 0.1) 100%);    border: 1px solid var(--border-color);    border-radius: var(--radius-md);    padding: var(--spacing-xl) var(--spacing-lg);    margin-bottom: var(--spacing-xl);    backdrop-filter: var(--glass-blur);    animation: fadeInSlide 0.6s ease-out;}.mb-stats-item {    text-align: center;    flex: 1;}.mb-stats-count {    font-size: 1.75rem;    font-weight: 700;    background: var(--gradient-primary);    -webkit-background-clip: text;    -webkit-text-fill-color: transparent;    background-clip: text;    font-family: var(--font-mono);    margin-bottom: var(--spacing-xs);}.mb-stats-label {    font-size: 0.85rem;    color: var(--text-secondary);    text-transform: uppercase;    letter-spacing: 0.05em;}.mb-stats-divider {    width: 1px;    height: 50px;    background: var(--border-color);    margin: 0 var(--spacing-lg);}/* Shareable Receipt Modal */.mb-receipt-modal {    position: fixed;    top: 0;    left: 0;    right: 0;    bottom: 0;    background: rgba(0, 0, 0, 0.7);    backdrop-filter: blur(4px);    display: flex;    align-items: center;    justify-content: center;    z-index: 1000;    animation: fadeIn 0.3s ease-out;}.mb-receipt-modal.hidden {    display: none;}.mb-receipt-card {    background: var(--card-bg-solid);    border: 1px solid var(--border-color);    border-radius: var(--radius-lg);    padding: var(--spacing-xl);    max-width: 420px;    width: 90%;    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.6);    position: relative;    animation: slideUp 0.4s cubic-bezier(0.16, 1, 0.3, 1);}.mb-receipt-close {    position: absolute;    top: var(--spacing-lg);    right: var(--spacing-lg);    background: transparent;    border: none;    color: var(--text-secondary);    font-size: 1.5rem;    cursor: pointer;    transition: color 0.2s ease;}.mb-receipt-close:hover {    color: var(--text-primary);}.mb-receipt-header {    text-align: center;    margin-bottom: var(--spacing-xl);}.mb-receipt-emoji {    font-size: 3rem;    margin-bottom: var(--spacing-sm);    animation: bounce 0.6s ease-out;}.mb-receipt-header h3 {    font-size: 1.5rem;    margin: 0;    background: var(--gradient-success);    -webkit-background-clip: text;    -webkit-text-fill-color: transparent;    background-clip: text;}.mb-receipt-stats {    display: grid;    grid-template-columns: 1fr 1fr;    gap: var(--spacing-lg);    margin-bottom: var(--spacing-xl);    padding: var(--spacing-lg);    background: rgba(245, 242, 234, 0.02);    border-radius: var(--radius-md);}.mb-receipt-stat {    text-align: center;}.mb-receipt-stat-value {    font-size: 1.75rem;    font-weight: 700;    font-family: var(--font-mono);    color: var(--primary-color-2);    margin-bottom: var(--spacing-xs);}.mb-receipt-stat-label {    font-size: 0.8rem;    color: var(--text-secondary);    text-transform: uppercase;}.mb-receipt-message {    text-align: center;    margin-bottom: var(--spacing-lg);}.mb-receipt-message p {    font-size: 1rem;    color: var(--text-primary);    margin: 0;    line-height: 1.5;}.mb-receipt-divider {    height: 1px;    background: var(--border-color);    margin: var(--spacing-lg) 0;}.mb-receipt-actions {    display: flex;    flex-direction: column;    gap: var(--spacing-sm);}.mb-receipt-btn {    padding: var(--spacing-md) var(--spacing-lg);    border: none;    border-radius: var(--radius-sm);    font-weight: 600;    font-size: 0.95rem;    cursor: pointer;    transition: all 0.2s ease;    display: flex;    align-items: center;    justify-content: center;    gap: var(--spacing-sm);    font-family: var(--font-family);}.mb-receipt-btn-twitter {    background: linear-gradient(135deg, #1DA1F2 0%, #1a91da 100%);    color: white;}.mb-receipt-btn-twitter:hover {    transform: translateY(-2px);    box-shadow: 0 8px 20px rgba(29, 161, 242, 0.3);}.mb-receipt-btn-copy {    background: rgba(245, 242, 234, 0.08);    color: var(--text-primary);    border: 1px solid var(--border-color);}.mb-receipt-btn-copy:hover {    background: rgba(245, 242, 234, 0.12);    border-color: var(--primary-color);}.mb-receipt-footer {    text-align: center;    margin-top: var(--spacing-lg);    font-size: 0.85rem;    color: var(--text-secondary);}/* Mobile Optimization */@media (max-width: 640px) {    .mb-stats-banner {        flex-direction: column;        gap: var(--spacing-lg);        padding: var(--spacing-lg);    }    .mb-stats-divider {        width: 40px;        height: 1px;        margin: 0;    }    .mb-receipt-card {        width: 95%;        padding: var(--spacing-lg);    }    .mb-receipt-stats {        grid-template-columns: 1fr;    }    .mb-receipt-btn {        font-size: 0.9rem;        padding: var(--spacing-md);    }}/* Animations */@keyframes fadeInSlide {    from {        opacity: 0;        transform: translateY(-10px);    }    to {        opacity: 1;        transform: translateY(0);    }}@keyframes slideUp {    from {        opacity: 0;        transform: translateY(20px);    }    to {        opacity: 1;        transform: translateY(0);    }}@keyframes bounce {    0%, 100% { transform: scale(1); }    50% { transform: scale(1.15); }}