/* /app/static/style.css */ /* ========== General Layout ========== */ body { font-family: Arial, sans-serif; margin: 0; padding: 0 1rem; background-color: #5d6668; } .mainview { max-width: 1600px; margin: 0 auto; background-color: rgba(0,0,0,.4); } /* Navbar container */ .navbar { display: flex; background-color: #1e1e1e; border-bottom: 1px solid rgba(255, 255, 255, 0.1); justify-content: flex-start; flex-wrap: wrap; justify-content: center; } /* Button-style nav links */ .nav-button { display: inline-block; padding: 0.5rem 1rem; color: white; text-decoration: none; border-radius: 5px; font-weight: bold; font-size: 1.5rem; transition: background-color 0.2s ease, transform 0.1s ease; } .nav-button:hover { background-color: #444; transform: translateY(-1px); } .nav-button:active { background-color: #1a1a1a; transform: translateY(1px); } .flash-container { max-width: 800px; margin: 1rem auto; padding: 0 1rem; } .flash { padding: 1rem; margin-bottom: 1rem; border-radius: 6px; font-weight: 500; color: #fff; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1); } .flash-info { background-color: #3182ce; /* blue */ } .flash-message, .flash-success { background-color: #38a169; /* green */ } .flash-warning { background-color: #dd6b20; /* orange */ } .flash-danger, .flash-error { background-color: #e53e3e; /* red */ } .content { padding: 8px; } /* ========== Gallery Layout ========== */ .image-date { display: block; font-size: 0.8rem; color: #e2e2e2; margin-top: 0.25rem; } .gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1rem; padding: 1rem; } .gallery-item { display: flex; flex-direction: column; align-items: center; height: 450px; background-color: #1c1c1c; box-shadow: 0 3px 4px rgba(0,0,0,0.7); padding: 8px; border-radius: 8px; transition: transform 0.2s ease; } .gallery-item:hover { transform: scale(1.03); } .gallery-thumb { position: relative; width: 100%; height: 100%; background-size: cover; background-position: center; box-shadow: 0 4px 4px rgba(0,0,0,0.4); border-radius: 12px; cursor: pointer; } .gallery-item a { color: #d4aeff; font-weight: bold; text-decoration: none; font-size: 0.95rem; } .gallery-item a:hover { text-decoration: underline; color: #d4d4d4; } .play-overlay { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-size: 3rem; color: white; text-shadow: 0 0 8px rgba(0, 0, 0, 0.8); opacity: 1; pointer-events: none; z-index: 2; } .pagination-container { text-align: center; margin: 2rem 0; } .pagination-link { display: inline-block; margin: 0 0.3rem; padding: 0.5rem 1rem; border: 1px solid #aaa; border-radius: 4px; color: #ffffff; text-decoration: none; } .pagination-link.active, .pagination-link:hover { background-color: #007BFF; color: white; border-color: #007BFF; } .pagination-ellipsis { padding: 0 0.5rem; color: #999; } /* MODAL STYLES */ .modal { display: none; position: fixed; inset: 0; z-index: 1000; background: rgba(0, 0, 0, 0.85); justify-content: center; align-items: center; } .modal.active { display: flex; } .modal-content { position: relative; width: 100%; max-width: 1600px; max-height: 95vh; display: flex; flex-direction: column; align-items: center; } /* Modal body */ .modal-body { display: flex; flex-direction: column; align-items: center; gap: 0.75rem; width: 100%; } /* Image wrapper for tall image logic */ .modal-image-wrapper { max-width: 100%; max-height: 80vh; overflow: hidden; cursor: default; } .modal-image-wrapper.zoomed { overflow: auto; cursor: grab; } .modal-image-wrapper.zoomed img { width: auto; height: auto; max-width: none; max-height: none; } .modal-image-wrapper img { max-width: 100%; max-height: 80vh; object-fit: contain; border-radius: 6px; box-shadow: 0 0 10px rgba(0,0,0,0.6); } /* Adjust for very tall images */ .modal-image-wrapper.too-tall { overflow-y: auto; } .modal-image-wrapper.too-tall img { width: 90vw; height: auto; max-height: none; } /* Modal buttons */ .modal-button { position: absolute; top: 10%; bottom: 10%; width: 60px; background: rgba(0, 0, 0, 0.3); border: none; color: white; font-size: 2.5rem; cursor: pointer; z-index: 1001; display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.2s; border-radius: 4px; } .modal-content:hover .modal-button { opacity: 1; } .modal-prev { left: 0; } .modal-next { right: 0; } /* Artist Styling */ .artist-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1.5rem; padding: 1rem; } .artist-card { background-color: #1c1c1c; padding: 1rem; border-radius: 8px; box-shadow: 0 2px 6px rgba(0,0,0,0.2); } .artist-card h3 { margin-bottom: 0.5rem; text-align: center; color: white; } .artist-preview { display: flex; gap: 0; justify-content: center; overflow: hidden; border-radius: 6px; } .artist-thumb { flex: 1; height: 300px; background-size: cover; background-position: center; background-repeat: no-repeat; transition: transform 0.3s ease; } .artist-thumb:hover { transform: scale(1.05); } .artist-card-link { text-decoration: none; color: inherit; display: block; transition: transform 0.2s ease; } .artist-card-link:hover .artist-card { transform: scale(1.02); box-shadow: 0 4px 10px rgba(0,0,0,0.4); } .settings-container { max-width: 600px; margin: 2rem auto; padding: 1.5rem; background: #f8f8f8; border-radius: 12px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); } .settings-section h2 { margin-bottom: 1rem; text-align: center; } .settings-actions { display: flex; flex-direction: column; gap: 1rem; align-items: center; } .btn { padding: 0.75rem 1.5rem; font-size: 1rem; border: none; border-radius: 8px; cursor: pointer; transition: background 0.3s ease; } .primary-btn { background-color: #0066cc; color: white; } .primary-btn:hover { background-color: #004d99; } .danger-btn { background-color: #cc0033; color: white; } .danger-btn:hover { background-color: #990024; } .settings-info { margin-top: 2rem; font-size: 0.95rem; color: #444; text-align: center; } .index-hero { position: relative; height: 100vh; background-size: cover; background-position: center; filter: blur(0px); /* Required to initialize */ overflow: hidden; } .index-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(20, 20, 20, 0.5); backdrop-filter: blur(16px); display: flex; align-items: center; justify-content: center; z-index: 1; } .index-message { text-align: center; color: #fff; padding: 2rem; max-width: 600px; } .index-message h1 { font-size: 2.5rem; margin-bottom: 1rem; } .index-message p { font-size: 1.2rem; margin-bottom: 2rem; } .index-message .btn { font-size: 1.1rem; } /* Form Styling */ .form-container { max-width: 400px; margin: 2rem auto; padding: 2rem; background-color: #ffffffdd; border-radius: 10px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); } .form-card { display: flex; flex-direction: column; gap: 1rem; } .form-group { display: flex; flex-direction: column; } .form-label { margin-bottom: 0.5rem; font-weight: 600; } .form-input { padding: 0.6rem; border: 1px solid #ccc; border-radius: 5px; } .form-button { padding: 0.75rem; background-color: #5a67d8; color: white; border: none; border-radius: 5px; cursor: pointer; } .form-button:hover { background-color: #434190; } .form-footer-text { margin-top: 1rem; text-align: center; }