interactive intro to open social at-me.zzstoatzz.io
at main 420 lines 8.2 kB view raw
1/* Landing page styles */ 2 3* { margin: 0; padding: 0; box-sizing: border-box; } 4 5body { 6 font-family: ui-monospace, 'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', Menlo, 'Courier New', monospace; 7 min-height: 100vh; 8 background: radial-gradient(ellipse at center, #0a0a0f 0%, #000000 100%); 9 color: #e5e5e5; 10 overflow: hidden; 11 perspective: 1000px; 12} 13 14@media (max-width: 768px) { 15 body { 16 overflow-y: auto; 17 overflow-x: hidden; 18 } 19} 20 21.atmosphere { 22 position: fixed; 23 inset: 0; 24 transform-style: preserve-3d; 25 animation: rotate 120s infinite linear; 26} 27 28@keyframes rotate { 29 from { transform: rotateY(0deg); } 30 to { transform: rotateY(360deg); } 31} 32 33.app-orb { 34 position: absolute; 35 border-radius: 50%; 36 display: flex; 37 align-items: center; 38 justify-content: center; 39 transition: all 0.3s ease; 40 cursor: pointer; 41 backdrop-filter: blur(4px); 42} 43 44.app-orb:hover { 45 transform: scale(1.2) !important; 46 z-index: 100; 47} 48 49.app-orb img { 50 width: 100%; 51 height: 100%; 52 border-radius: 50%; 53 object-fit: cover; 54} 55 56.app-orb .fallback { 57 font-size: 1.5rem; 58 font-weight: 600; 59 color: rgba(255, 255, 255, 0.9); 60} 61 62.app-tooltip { 63 position: absolute; 64 background: rgba(10, 10, 15, 0.95); 65 border: 1px solid rgba(255, 255, 255, 0.1); 66 padding: 0.5rem 0.75rem; 67 border-radius: 4px; 68 font-size: 0.7rem; 69 white-space: nowrap; 70 pointer-events: none; 71 opacity: 0; 72 transition: opacity 0.2s; 73 z-index: 1000; 74} 75 76.app-orb:hover .app-tooltip { 77 opacity: 1; 78} 79 80.container { 81 position: fixed; 82 inset: 0; 83 display: flex; 84 align-items: center; 85 justify-content: center; 86 z-index: 10; 87} 88 89@media (max-width: 768px) { 90 .container { 91 position: relative; 92 min-height: 100vh; 93 padding: 2rem 0; 94 } 95} 96 97.search-card { 98 background: transparent; 99 border: 1px solid rgba(255, 255, 255, 0.1); 100 padding: 2.5rem 3rem; 101 border-radius: 8px; 102 backdrop-filter: blur(2px); 103 text-align: center; 104 max-width: min(500px, 90vw); 105} 106 107h1 { 108 font-size: 2rem; 109 margin-bottom: 0.5rem; 110 font-weight: 300; 111 letter-spacing: 0.05em; 112} 113 114.subtitle { 115 font-size: 0.75rem; 116 color: rgba(255, 255, 255, 0.5); 117 margin-bottom: 2rem; 118} 119 120input { 121 font-family: inherit; 122 font-size: 0.9rem; 123 padding: 0.75rem 1rem; 124 margin-bottom: 1rem; 125 background: rgba(10, 10, 15, 0.8); 126 border: 1px solid rgba(255, 255, 255, 0.2); 127 border-radius: 4px; 128 color: #e5e5e5; 129 width: 100%; 130 transition: all 0.2s; 131} 132 133input:focus { 134 outline: none; 135 border-color: rgba(255, 255, 255, 0.4); 136 background: rgba(10, 10, 15, 0.9); 137} 138 139input::placeholder { 140 color: rgba(255, 255, 255, 0.3); 141} 142 143.input-wrapper { 144 position: relative; 145 width: 100%; 146} 147 148.autocomplete-results { 149 position: absolute; 150 z-index: 100; 151 width: 100%; 152 max-height: 240px; 153 overflow-y: auto; 154 background: rgba(10, 10, 15, 0.98); 155 border: 1px solid rgba(255, 255, 255, 0.2); 156 border-radius: 4px; 157 margin-top: 0.25rem; 158 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5); 159 display: none; 160 scrollbar-width: thin; 161 scrollbar-color: rgba(255, 255, 255, 0.2) rgba(10, 10, 15, 0.5); 162} 163 164.autocomplete-results::-webkit-scrollbar { 165 width: 8px; 166} 167 168.autocomplete-results::-webkit-scrollbar-track { 169 background: rgba(10, 10, 15, 0.5); 170 border-radius: 4px; 171} 172 173.autocomplete-results::-webkit-scrollbar-thumb { 174 background: rgba(255, 255, 255, 0.2); 175 border-radius: 4px; 176} 177 178.autocomplete-results::-webkit-scrollbar-thumb:hover { 179 background: rgba(255, 255, 255, 0.3); 180} 181 182.autocomplete-results.show { 183 display: block; 184} 185 186.autocomplete-item { 187 width: 100%; 188 display: flex; 189 align-items: center; 190 gap: 0.75rem; 191 padding: 0.75rem; 192 background: transparent; 193 border: none; 194 border-bottom: 1px solid rgba(255, 255, 255, 0.1); 195 color: #e5e5e5; 196 text-align: left; 197 font-family: inherit; 198 cursor: pointer; 199 transition: background 0.15s; 200} 201 202.autocomplete-item:last-child { 203 border-bottom: none; 204} 205 206.autocomplete-item:hover { 207 background: rgba(255, 255, 255, 0.1); 208} 209 210.autocomplete-avatar { 211 width: 36px; 212 height: 36px; 213 border-radius: 50%; 214 object-fit: cover; 215 border: 1px solid rgba(255, 255, 255, 0.2); 216 flex-shrink: 0; 217} 218 219.autocomplete-avatar-placeholder { 220 width: 36px; 221 height: 36px; 222 border-radius: 50%; 223 background: rgba(255, 255, 255, 0.1); 224 flex-shrink: 0; 225 display: flex; 226 align-items: center; 227 justify-content: center; 228 font-size: 0.9rem; 229 color: rgba(255, 255, 255, 0.5); 230} 231 232.autocomplete-info { 233 flex: 1; 234 min-width: 0; 235 overflow: hidden; 236} 237 238.autocomplete-name { 239 font-weight: 500; 240 color: rgba(255, 255, 255, 0.9); 241 margin-bottom: 0.125rem; 242 overflow: hidden; 243 text-overflow: ellipsis; 244 white-space: nowrap; 245 font-size: 0.85rem; 246} 247 248.autocomplete-handle { 249 font-size: 0.75rem; 250 color: rgba(255, 255, 255, 0.5); 251 overflow: hidden; 252 text-overflow: ellipsis; 253 white-space: nowrap; 254} 255 256.search-spinner { 257 position: absolute; 258 right: 0.75rem; 259 top: 50%; 260 transform: translateY(-50%); 261 color: rgba(255, 255, 255, 0.4); 262 font-size: 0.75rem; 263} 264 265button { 266 font-family: inherit; 267 font-size: 0.9rem; 268 padding: 0.75rem 2rem; 269 cursor: pointer; 270 background: rgba(10, 10, 15, 0.8); 271 border: 1px solid rgba(255, 255, 255, 0.2); 272 border-radius: 4px; 273 color: #e5e5e5; 274 transition: all 0.2s; 275 width: 100%; 276} 277 278button:hover { 279 background: rgba(10, 10, 15, 0.9); 280 border-color: rgba(255, 255, 255, 0.4); 281} 282 283.divider { 284 display: flex; 285 align-items: center; 286 gap: 1rem; 287 margin: 1.5rem 0 1rem; 288 color: rgba(255, 255, 255, 0.3); 289 font-size: 0.7rem; 290} 291 292.divider::before, 293.divider::after { 294 content: ''; 295 flex: 1; 296 height: 1px; 297 background: rgba(255, 255, 255, 0.1); 298} 299 300.suggestions { 301 display: flex; 302 gap: 0.75rem; 303 flex-wrap: wrap; 304 justify-content: center; 305} 306 307.suggestion-btn { 308 font-family: inherit; 309 font-size: 0.8rem; 310 padding: 0.5rem 1rem; 311 cursor: pointer; 312 background: transparent; 313 border: 1px solid rgba(255, 255, 255, 0.15); 314 border-radius: 4px; 315 color: rgba(255, 255, 255, 0.6); 316 transition: all 0.2s; 317 width: auto; 318} 319 320.suggestion-btn:hover { 321 background: rgba(10, 10, 15, 0.5); 322 border-color: rgba(255, 255, 255, 0.3); 323 color: rgba(255, 255, 255, 0.8); 324} 325 326.info-toggle { 327 margin-top: 1.5rem; 328 color: rgba(255, 255, 255, 0.5); 329 font-size: 0.75rem; 330 cursor: pointer; 331 border: none; 332 background: none; 333 padding: 0.5rem; 334 transition: color 0.2s; 335 text-decoration: underline; 336 text-underline-offset: 2px; 337} 338 339.info-toggle:hover { 340 color: rgba(255, 255, 255, 0.8); 341} 342 343.info-content { 344 max-height: 0; 345 overflow: hidden; 346 transition: max-height 0.3s ease; 347 margin-top: 1rem; 348} 349 350.info-content.expanded { 351 max-height: 500px; 352 overflow-y: auto; 353} 354 355@media (max-width: 768px) { 356 .info-content.expanded { 357 max-height: none; 358 overflow-y: visible; 359 } 360} 361 362.info-section { 363 background: rgba(10, 10, 15, 0.6); 364 border: 1px solid rgba(255, 255, 255, 0.1); 365 border-radius: 4px; 366 padding: 1.5rem; 367 text-align: left; 368} 369 370.info-section h3 { 371 font-size: 0.85rem; 372 font-weight: 500; 373 margin-bottom: 0.75rem; 374 color: rgba(255, 255, 255, 0.9); 375} 376 377.info-section p { 378 font-size: 0.7rem; 379 line-height: 1.6; 380 color: rgba(255, 255, 255, 0.6); 381 margin-bottom: 1rem; 382} 383 384.info-section p:last-child { 385 margin-bottom: 0; 386} 387 388.info-section strong { 389 color: rgba(255, 255, 255, 0.85); 390} 391 392.info-section a { 393 color: rgba(255, 255, 255, 0.8); 394 text-decoration: underline; 395 text-underline-offset: 2px; 396} 397 398.info-section a:hover { 399 color: rgba(255, 255, 255, 1); 400} 401 402.footer { 403 position: fixed; 404 bottom: 1rem; 405 left: 50%; 406 transform: translateX(-50%); 407 font-size: 0.7rem; 408 color: rgba(255, 255, 255, 0.3); 409 z-index: 20; 410} 411 412.footer a { 413 color: rgba(255, 255, 255, 0.5); 414 text-decoration: none; 415 transition: color 0.2s; 416} 417 418.footer a:hover { 419 color: rgba(255, 255, 255, 0.8); 420}