/* DeepDrft Global Styles - Simplified & Maintainable Note: the palette / token layer (--deepdrft-*, --theme-*, --gradient-*, and the .deepdrft-theme-dark override block) lives in DeepDrftShared.Client and is served at _content/DeepDrftShared.Client/styles/deepdrft-tokens.css. Link that file BEFORE this one in App.razor — every rule below depends on those tokens. */ /* ============================================================================= 1. PAGE BASELINE ============================================================================= */ /* Base page colours — use MudBlazor's theme-injected variables so they switch automatically when IsDarkMode toggles. The --mud-palette-background and --mud-palette-text-primary variables are injected by MudThemeProvider and update in both light and dark modes. */ html, body { background-color: var(--mud-palette-background); color: var(--mud-palette-text-primary); } /* Ensure the theme wrapper fills the full viewport so no background gap shows. */ .deepdrft-theme-dark, .deepdrft-theme-light { min-height: 100vh; } /* ============================================================================= 2. GRADIENTS ============================================================================= */ .deepdrft-gradient-primary, .deepdrft-gradient-hero { background: linear-gradient(135deg, var(--gradient-base) 0%, color-mix(in srgb, var(--gradient-base) 90%, var(--gradient-accent) 10%) 50%, color-mix(in srgb, var(--gradient-base) 80%, var(--gradient-accent) 20%) 100%); } .deepdrft-gradient-soft-primary { background: linear-gradient(45deg, color-mix(in srgb, var(--gradient-accent) 4%, transparent) 0%, color-mix(in srgb, var(--gradient-warm) 6%, transparent) 100%); } .deepdrft-gradient-soft-secondary { background: linear-gradient(45deg, color-mix(in srgb, var(--gradient-light) 6%, transparent) 0%, color-mix(in srgb, var(--gradient-accent) 4%, transparent) 100%); } .deepdrft-gradient-soft-accent { background: linear-gradient(135deg, color-mix(in srgb, var(--gradient-accent) 3%, transparent) 0%, color-mix(in srgb, var(--gradient-light) 5%, transparent) 100%); } .deepdrft-gradient-soft-tertiary { background: linear-gradient(135deg, color-mix(in srgb, var(--gradient-warm) 5%, transparent) 0%, color-mix(in srgb, var(--gradient-accent) 3%, transparent) 100%); } .deepdrft-gradient-features { background: linear-gradient(to right, color-mix(in srgb, var(--gradient-accent) 2%, transparent) 0%, color-mix(in srgb, var(--gradient-warm) 3%, transparent) 100%); } /* ============================================================================= 3. TYPOGRAPHY ============================================================================= */ /* Hero text */ h1, .deepdrft-text-hero { font-family: var(--deepdrft-font-display); font-weight: bold; text-shadow: 2px 2px 4px rgba(0,0,0,0.5); } /* Headers */ h2, h3, h4, h5, h6, .deepdrft-text-subtitle { font-family: var(--deepdrft-font-display); } .deepdrft-text-subtitle { font-weight: 300; text-shadow: 1px 1px 2px rgba(0,0,0,0.3); } /* Body */ body, p, span, div, .deepdrft-text-description, .deepdrft-text-readable { font-family: var(--deepdrft-font-body); } .deepdrft-text-description { font-weight: 400; opacity: 0.9; } .deepdrft-text-bold { font-weight: bold; } .deepdrft-text-readable { line-height: 1.6; } /* MudBlazor font overrides */ .mud-typography-h1, .mud-typography-h2, .mud-typography-h3, .mud-typography-h4, .mud-typography-h5, .mud-typography-h6, .mud-navlink-text, .mud-appbar-content { font-family: var(--deepdrft-font-display) !important; } .mud-button-text, .mud-typography-caption, .mud-typography-overline { font-family: var(--deepdrft-font-mono) !important; } .mud-typography-body1, .mud-typography-body2, .mud-input-text, .mud-select-text, .mud-form-label { font-family: var(--deepdrft-font-body) !important; } /* ============================================================================= 4. HERO SECTION ============================================================================= */ .deepdrft-hero-container { min-height: 60vh; display: flex; flex-direction: column; justify-content: center; } .deepdrft-hero-text-container { max-width: 600px; } /* Light mode hero text */ .deepdrft-theme-light .deepdrft-hero-title { color: var(--deepdrft-primary); } .deepdrft-theme-light .deepdrft-hero-subtitle { color: var(--deepdrft-secondary); } .deepdrft-theme-light .deepdrft-hero-description { color: var(--theme-surface-soft); } /* Dark mode hero text */ .deepdrft-theme-dark .deepdrft-hero-title { color: var(--theme-surface); } .deepdrft-theme-dark .deepdrft-hero-subtitle { color: var(--deepdrft-tertiary); } .deepdrft-theme-dark .deepdrft-hero-description { color: var(--theme-surface-soft); } /* Hero buttons - Light */ .deepdrft-theme-light .deepdrft-hero-button-filled.mud-button-filled { background-color: var(--deepdrft-primary); color: var(--gradient-base); } .deepdrft-theme-light .deepdrft-hero-button-outlined.mud-button-outlined { border-color: var(--deepdrft-primary); color: var(--deepdrft-primary); } /* Hero buttons - Dark */ .deepdrft-theme-dark .deepdrft-hero-button-filled.mud-button-filled { background-color: var(--deepdrft-primary); color: var(--gradient-base); } .deepdrft-theme-dark .deepdrft-hero-button-outlined.mud-button-outlined { border-color: var(--theme-surface); color: var(--theme-surface); } /* ============================================================================= 5. APPBAR ============================================================================= */ .deepdrft-theme-light .mud-appbar, .deepdrft-theme-light .mud-appbar *, .deepdrft-theme-light .mud-appbar .mud-icon-button { color: var(--gradient-base); } .deepdrft-theme-dark .mud-appbar, .deepdrft-theme-dark .mud-appbar *, .deepdrft-theme-dark .mud-appbar .mud-icon-button { color: var(--theme-surface); } /* ============================================================================= 6. BORDERS (Only used variants) ============================================================================= */ .deepdrft-border-left-secondary { border-left: 4px solid var(--theme-secondary); } .deepdrft-border-left-tertiary { border-left: 4px solid var(--theme-tertiary); } .deepdrft-border-top-quaternary { border-top: 4px solid var(--theme-quaternary); } .deepdrft-border-top-senary { border-top: 4px solid var(--theme-senary); } /* ============================================================================= 7. CARDS & TINTS (Only used variants) ============================================================================= */ .deepdrft-feature-card, .deepdrft-about-card { height: 100%; } .deepdrft-feature-icon-container { text-align: center; } /* Card tints - using theme variables */ .deepdrft-card-purple-tint { background: color-mix(in srgb, var(--deepdrft-secondary) 10%, transparent); } .deepdrft-card-pink-tint { background: color-mix(in srgb, var(--gradient-warm) 10%, transparent); } .deepdrft-card-indigo-tint { background: color-mix(in srgb, var(--gradient-accent) 8%, transparent); } .deepdrft-card-lavender-tint { background: color-mix(in srgb, var(--theme-quinary) 10%, transparent); } /* ============================================================================= 8. TRACK CARDS ============================================================================= */ .deepdrft-track-card-container { width: 250px; height: 250px; min-width: 250px; position: relative; overflow: hidden; } .deepdrft-track-card-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-size: cover; background-position: center; filter: brightness(0.7); } .deepdrft-track-card-content { position: relative; z-index: 1; height: 100%; display: flex; flex-direction: column; justify-content: space-between; padding: 16px; } .deepdrft-track-card-fallback { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } .deepdrft-track-info-middle { margin: 8px 0; } .deepdrft-track-info-bottom { display: flex; justify-content: space-between; align-items: center; } .deepdrft-track-gallery-item-center { display: flex; justify-content: center; } /* ============================================================================= 9. CHIPS & BUTTONS ============================================================================= */ .deepdrft-chip-spacing { margin: 2px; } .deepdrft-genre-chip { opacity: 0.9; margin-top: 4px; } .deepdrft-button-spaced { margin: 8px; } /* Extended palette chips */ .mud-chip.deepdrft-chip-quaternary { background-color: var(--theme-quaternary); color: white; } .mud-chip.deepdrft-chip-quinary { background-color: var(--theme-quinary); color: white; } .mud-chip.deepdrft-chip-senary { background-color: var(--theme-senary); color: white; } /* ============================================================================= 10. EXTENDED PALETTE TEXT COLORS (Only used variants) ============================================================================= */ .deepdrft-text-quaternary { color: var(--theme-quaternary); } .deepdrft-text-quinary { color: var(--theme-quinary); } .deepdrft-text-senary { color: var(--theme-senary); } /* ============================================================================= 11. CTA SECTION ============================================================================= */ .deepdrft-cta-container { border-radius: 16px; text-align: center; } .deepdrft-cta-buttons { margin-bottom: 16px; } /* ============================================================================= 12. ICONS & UTILITIES ============================================================================= */ .deepdrft-icon-large { font-size: 3rem; } /* ============================================================================= 13. RESPONSIVE ============================================================================= */ @media (max-width: 768px) { .deepdrft-hero-text { font-size: clamp(1.5rem, 6vw, 3rem) !important; } .deepdrft-cta-buttons .mud-button { margin: 4px !important; width: 100%; } } @media (max-width: 480px) { .deepdrft-track-card-container { min-width: 200px; width: 200px; height: 200px; } }