:root { /* Minimalist, Clean Dark Palette */ --bg: #0a0a0a; /* deep black background */ --surface: #141414; /* dark grey surface */ --surface-hover: #1f1f1f; /* slightly lighter surface for hover */ --border: #262626; /* subtle border */ --text: #f0f0f0; /* crisp white text */ --text-muted: #a3a3a3; /* readable grey for secondary text */ --accent: #e5e5e5; /* near-white for accents */ --link: #a3a3a3; /* muted links */ --link-hover: #ffffff; /* pure white on hover */ --greentext: #4ade80; /* modern green */ } body { background-color: var(--bg); color: var(--text); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.5; margin: 0; padding: 0; min-height: 100vh; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } header { padding: 24px 32px; border-bottom: 1px solid var(--border); background: var(--bg); position: sticky; top: 0; z-index: 100; display: flex; flex-direction: column; gap: 16px; } .header-top { display: flex; justify-content: space-between; align-items: center; } h1 { font-size: 20px; font-weight: 600; letter-spacing: -0.02em; margin: 0; color: var(--text); } .nav { font-size: 13px; font-weight: 500; display: flex; gap: 24px; padding-left: 0; } a { color: var(--link); text-decoration: none; transition: color 0.15s ease; } a:hover { color: var(--link-hover); } .nav a { text-transform: lowercase; letter-spacing: 0.05em; } hr { display: none; } main { padding: 32px; max-width: 1400px; margin: 0 auto; } /* Search Area */ .search-input { border: 1px solid var(--border); background: var(--surface); padding: 8px 12px; color: var(--text); font-size: 13px; width: 280px; transition: all 0.2s ease; border-radius: 0; /* Strict no rounded corners */ } .search-input:focus { outline: none; border-color: var(--text-muted); background: var(--bg); } .search-input::placeholder { color: #525252; } .search-button { background-color: var(--text); border: 1px solid var(--text); color: var(--bg); padding: 8px 16px; cursor: pointer; font-size: 13px; font-weight: 600; transition: all 0.15s ease; border-radius: 0; } .search-button:hover { background-color: var(--link-hover); border-color: var(--link-hover); } .status-text { color: var(--text-muted); font-weight: 500; font-size: 13px; margin-bottom: 24px; text-transform: lowercase; text-align: left; } /* Grid Layout */ .catalog-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 32px 24px; } .catalog-item { display: flex; flex-direction: column; gap: 12px; text-align: left; width: 100%; } .image-container, .catalog-thumb { width: 100%; aspect-ratio: 2/3; object-fit: cover; background: var(--surface); border: 1px solid var(--border); transition: transform 0.3s ease, opacity 0.3s ease; display: block; } .image-container:hover, .catalog-thumb:hover { transform: scale(1.02); opacity: 0.9; } .no-image { width: 100%; aspect-ratio: 2/3; display: flex; align-items: center; justify-content: center; color: #525252; font-size: 12px; text-transform: uppercase; letter-spacing: 0.1em; background: var(--surface); border: 1px solid var(--border); } .catalog-title { font-weight: 500; font-size: 14px; margin: 0; line-height: 1.4; color: var(--text); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } footer { text-align: center; font-size: 12px; color: var(--text-muted); margin-top: 64px; padding: 32px; border-top: 1px solid var(--border); } /* HTMX states */ .htmx-indicator { display: none; } .htmx-request .htmx-indicator { display: block; } .htmx-request.htmx-indicator { display: block; } /* Anime Details Page */ .details-container { display: grid; grid-template-columns: 300px 1fr; gap: 48px; align-items: start; } .details-header { grid-column: 1 / -1; margin-bottom: 16px; border: none; } .details-header h2 { font-size: 32px; font-weight: 600; letter-spacing: -0.02em; margin: 0 0 8px 0; } .details-subtitle { font-size: 15px; color: var(--text-muted); } .details-sidebar { display: flex; flex-direction: column; gap: 24px; width: 100%; } .details-image { width: 100%; height: auto; border: 1px solid var(--border); display: block; } .stats-table { width: 100%; border-collapse: collapse; font-size: 13px; border: 1px solid var(--border); } .stats-table td { border-bottom: 1px solid var(--border); padding: 10px 12px; border-right: none; border-left: none; } .stats-table tr:last-child td { border-bottom: none; } .stats-table .stat-label { color: var(--text-muted); width: 100px; font-weight: 500; background: transparent; } .stat-sub { color: #525252; font-size: 12px; display: block; margin-top: 2px; } .details-main { display: flex; flex-direction: column; gap: 32px; } .details-main h3 { font-size: 14px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--text-muted); margin: 0 0 16px 0; font-weight: 600; border-bottom: 1px solid var(--border); padding-bottom: 8px; display: block; } .details-synopsis { font-size: 15px; line-height: 1.8; color: var(--text); white-space: pre-wrap; } .relations-list ul { list-style-type: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; } .relations-list li { font-size: 14px; display: flex; gap: 8px; align-items: baseline; } .relations-list strong { color: var(--text-muted); font-weight: 500; font-size: 12px; text-transform: uppercase; letter-spacing: 0.05em; min-width: 80px; } /* Forms & Selects */ select, input[type="text"], input[type="password"], input[type="email"] { background: var(--surface); border: 1px solid var(--border); color: var(--text); padding: 8px 12px; font-size: 13px; font-family: inherit; border-radius: 0; transition: all 0.2s ease; } select:focus, input:focus { outline: none; border-color: var(--text-muted); background: var(--bg); } button { border-radius: 0; } /* Responsive adjustments */ @media (max-width: 768px) { header { padding: 16px; } .header-top { flex-direction: column; align-items: flex-start; gap: 16px; } form[action="/"] { width: 100%; } .search-input { width: 100%; flex: 1; } main { padding: 16px; } .details-container { grid-template-columns: 1fr; gap: 32px; } .catalog-grid { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 24px 16px; } }