|
| 1 | +@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;600;700;900&family=Orbitron:wght@400;600;800&display=swap'); |
| 2 | + |
1 | 3 | @tailwind base; |
2 | 4 | @tailwind components; |
3 | 5 | @tailwind utilities; |
| 6 | + |
| 7 | +/* Futuristic Dark Theme for Shopify templates */ |
| 8 | +@layer base { |
| 9 | + :root { |
| 10 | + --bg-0: #0b0f19; /* base background */ |
| 11 | + --bg-1: #0f1526; /* elevated background */ |
| 12 | + --surface: rgba(255, 255, 255, 0.06); /* glass */ |
| 13 | + --border: rgba(255, 255, 255, 0.12); |
| 14 | + --text: #e6e9ef; /* primary text */ |
| 15 | + --muted: #9aa4b2; /* secondary text */ |
| 16 | + --accent: #7c3aed; /* electric purple */ |
| 17 | + --accent-2: #06b6d4; /* neon cyan */ |
| 18 | + } |
| 19 | + |
| 20 | + html, body { |
| 21 | + height: 100%; |
| 22 | + } |
| 23 | + |
| 24 | + body { |
| 25 | + color: var(--text); |
| 26 | + background-color: var(--bg-0); |
| 27 | + font-family: 'Outfit', system-ui, -apple-system, Segoe UI, Roboto, 'Helvetica Neue', Arial, 'Noto Sans', 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', sans-serif; |
| 28 | + -webkit-font-smoothing: antialiased; |
| 29 | + -moz-osx-font-smoothing: grayscale; |
| 30 | + |
| 31 | + /* Multi-layer neon gradient + subtle grid background */ |
| 32 | + background-image: |
| 33 | + radial-gradient(1200px 600px at 20% -10%, rgba(124, 58, 237, 0.25), transparent 60%), |
| 34 | + radial-gradient(800px 400px at 80% -10%, rgba(6, 182, 212, 0.20), transparent 60%), |
| 35 | + radial-gradient(1000px 600px at 50% 120%, rgba(124, 58, 237, 0.12), transparent 60%), |
| 36 | + linear-gradient(to bottom, rgba(255, 255, 255, 0.02), rgba(255, 255, 255, 0.02)), |
| 37 | + repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.04) 0, rgba(255, 255, 255, 0.04) 1px, transparent 1px, transparent 80px), |
| 38 | + repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.04) 0, rgba(255, 255, 255, 0.04) 1px, transparent 1px, transparent 80px); |
| 39 | + background-attachment: fixed, fixed, fixed, scroll, scroll, scroll; |
| 40 | + background-size: auto, auto, auto, auto, 80px 80px, 80px 80px; |
| 41 | + } |
| 42 | + |
| 43 | + /* Ambient glow orbits */ |
| 44 | + body::before, |
| 45 | + body::after { |
| 46 | + content: ""; |
| 47 | + position: fixed; |
| 48 | + inset: -20vmax; |
| 49 | + pointer-events: none; |
| 50 | + z-index: -1; |
| 51 | + filter: blur(80px); |
| 52 | + opacity: 0.35; |
| 53 | + background: conic-gradient(from 180deg at 50% 50%, rgba(124, 58, 237, 0.12), rgba(6, 182, 212, 0.12), rgba(124, 58, 237, 0.12)); |
| 54 | + } |
| 55 | + body::after { |
| 56 | + inset: -30vmax; |
| 57 | + transform: rotate(15deg); |
| 58 | + opacity: 0.25; |
| 59 | + } |
| 60 | + |
| 61 | + ::selection { |
| 62 | + background: rgba(124, 58, 237, 0.4); |
| 63 | + color: #fff; |
| 64 | + } |
| 65 | + |
| 66 | + h1, h2, h3, h4 { |
| 67 | + letter-spacing: 0.02em; |
| 68 | + font-weight: 700; |
| 69 | + line-height: 1.2; |
| 70 | + } |
| 71 | + |
| 72 | + a { |
| 73 | + color: inherit; |
| 74 | + text-decoration: none; |
| 75 | + transition: color 0.2s ease, opacity 0.2s ease; |
| 76 | + } |
| 77 | + a:hover { |
| 78 | + color: #b794f4; /* lighter purple */ |
| 79 | + } |
| 80 | +} |
| 81 | + |
| 82 | +@layer components { |
| 83 | + /* Layout container used across theme */ |
| 84 | + .page-width { |
| 85 | + width: min(1200px, 92vw); |
| 86 | + margin-inline: auto; |
| 87 | + } |
| 88 | + |
| 89 | + /* Glassmorphism card */ |
| 90 | + .card { |
| 91 | + background: linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.03)); |
| 92 | + border: 1px solid var(--border); |
| 93 | + border-radius: 16px; |
| 94 | + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.45), 0 0 0 1px rgba(255, 255, 255, 0.02) inset; |
| 95 | + backdrop-filter: saturate(140%) blur(14px); |
| 96 | + -webkit-backdrop-filter: saturate(140%) blur(14px); |
| 97 | + color: var(--text); |
| 98 | + } |
| 99 | + |
| 100 | + .muted { |
| 101 | + color: var(--muted); |
| 102 | + } |
| 103 | + |
| 104 | + /* Neon gradient brand */ |
| 105 | + .logo { |
| 106 | + font-family: 'Orbitron', 'Outfit', ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, 'Helvetica Neue', Arial, sans-serif; |
| 107 | + font-weight: 800; |
| 108 | + letter-spacing: 0.08em; |
| 109 | + background: linear-gradient(90deg, var(--accent), var(--accent-2)); |
| 110 | + -webkit-background-clip: text; |
| 111 | + background-clip: text; |
| 112 | + -webkit-text-fill-color: transparent; |
| 113 | + text-transform: uppercase; |
| 114 | + } |
| 115 | + |
| 116 | + header.header-sticky { |
| 117 | + position: sticky; |
| 118 | + top: 0; |
| 119 | + z-index: 50; |
| 120 | + backdrop-filter: saturate(160%) blur(10px); |
| 121 | + -webkit-backdrop-filter: saturate(160%) blur(10px); |
| 122 | + border-bottom: 1px solid var(--border); |
| 123 | + } |
| 124 | + |
| 125 | + header nav a { |
| 126 | + color: var(--muted); |
| 127 | + font-weight: 600; |
| 128 | + letter-spacing: 0.02em; |
| 129 | + padding: 0.35rem 0.5rem; |
| 130 | + border-radius: 10px; |
| 131 | + } |
| 132 | + header nav a:hover { |
| 133 | + color: #e9d5ff; /* soft lavender */ |
| 134 | + } |
| 135 | + |
| 136 | + /* Buttons */ |
| 137 | + .btn { |
| 138 | + display: inline-flex; |
| 139 | + align-items: center; |
| 140 | + gap: 0.5rem; |
| 141 | + padding: 0.72rem 1.1rem; |
| 142 | + border-radius: 12px; |
| 143 | + background: linear-gradient(135deg, #7c3aed 0%, #06b6d4 100%); |
| 144 | + color: #0b0f19; |
| 145 | + border: 1px solid rgba(124, 58, 237, 0.45); |
| 146 | + box-shadow: 0 0 0 rgba(124, 58, 237, 0), 0 8px 24px rgba(6, 182, 212, 0.22); |
| 147 | + font-weight: 700; |
| 148 | + letter-spacing: 0.02em; |
| 149 | + transition: transform 0.15s ease, box-shadow 0.2s ease, filter 0.2s ease; |
| 150 | + } |
| 151 | + .btn:hover { |
| 152 | + transform: translateY(-1px); |
| 153 | + filter: brightness(1.05); |
| 154 | + box-shadow: 0 0 0 rgba(124, 58, 237, 0), 0 12px 32px rgba(6, 182, 212, 0.28); |
| 155 | + } |
| 156 | + .btn:active { |
| 157 | + transform: translateY(0) scale(0.98); |
| 158 | + } |
| 159 | + .btn:focus-visible { |
| 160 | + outline: none; |
| 161 | + box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.35), 0 8px 22px rgba(6, 182, 212, 0.24); |
| 162 | + } |
| 163 | + |
| 164 | + /* Inputs */ |
| 165 | + .input { |
| 166 | + background: rgba(255, 255, 255, 0.03); |
| 167 | + border: 1px solid var(--border); |
| 168 | + color: var(--text); |
| 169 | + border-radius: 12px; |
| 170 | + padding: 0.6rem 0.8rem; |
| 171 | + min-width: 260px; |
| 172 | + outline: none; |
| 173 | + transition: border-color 0.15s ease, box-shadow 0.2s ease, background 0.2s ease; |
| 174 | + } |
| 175 | + .input::placeholder { |
| 176 | + color: var(--muted); |
| 177 | + } |
| 178 | + .input:focus { |
| 179 | + border-color: rgba(124, 58, 237, 0.65); |
| 180 | + box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.35); |
| 181 | + background: rgba(255, 255, 255, 0.05); |
| 182 | + } |
| 183 | +} |
| 184 | + |
| 185 | +@layer utilities { |
| 186 | + /* Subtle section spacing utility for templates */ |
| 187 | + .section-gap { |
| 188 | + padding-block: clamp(2rem, 5vw, 4rem); |
| 189 | + } |
| 190 | +} |
0 commit comments