*{box-sizing:border-box}
body{margin:0;font-family:"Segoe UI Variable Text","Segoe UI","Hiragino Sans","Yu Gothic UI",sans-serif;background:#101214;color:#edf2f7}
a{text-decoration:none}
button,select{font:inherit}

.site-header{background:#16191d;padding:14px 22px;border-bottom:1px solid #262c33;display:flex;align-items:center;gap:18px;min-height:70px;box-shadow:0 12px 34px rgba(0,0,0,.2)}
.site-brand{font-size:20px;font-weight:800;color:#f3f4f6;letter-spacing:.015em}
.auth-user{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:12px;color:#64748b;padding:6px 6px 6px 10px;border:1px solid #262c33;border-radius:18px;background:#101315}
.auth-avatar{width:28px;height:28px;border-radius:999px;display:grid;place-items:center;background:#353b42;border:1px solid #4b5563;color:#f8fafc;font-size:12px;font-weight:800;letter-spacing:.02em;flex-shrink:0;text-transform:uppercase}
.auth-meta{display:flex;flex-direction:column;gap:2px;min-width:0}
.auth-uname{font-size:12px;font-weight:700;color:#e5e7eb;line-height:1.1}
.auth-state{font-size:11px;color:#9ca3af;line-height:1.1}
.hidden{display:none!important}

.ghost-btn,.primary-btn{height:42px;padding:0 14px;border-radius:12px;border:1px solid #303844;background:#15191d;color:#edf2f7;cursor:pointer;transition:border-color .16s ease,background .16s ease,opacity .16s ease}
.ghost-btn:hover,.primary-btn:hover{border-color:#6b7280}
.ghost-btn[data-active="true"]{border-color:#b6c2d2;background:#20262d}
.primary-btn{background:#e5e7eb;color:#111315;border-color:#e5e7eb;font-weight:700}
.primary-btn:disabled,.ghost-btn:disabled{opacity:.45;cursor:not-allowed}
.small-btn{height:38px;padding:0 12px}

.gallery-shell{padding:26px 32px 40px;display:flex;flex-direction:column;gap:24px}
.eyebrow{margin:0 0 8px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#94a3b8}
.hero-panel{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;padding:20px 22px;border-radius:22px;border:1px solid #262c33;background:#15191d}
.hero-panel h1{margin:0 0 8px;font-size:32px;letter-spacing:-.03em}
.hero-panel p{margin:0;color:#94a3b8;line-height:1.6;max-width:760px}
.hero-actions{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}
.sort-control{display:flex;flex-direction:column;gap:8px;color:#cbd5e1;font-size:12px}
.sort-control select{height:42px;min-width:140px;padding:0 12px;border-radius:12px;border:1px solid #303844;background:#15191d;color:#edf2f7}

.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px}
.gallery-card{display:flex;flex-direction:column;overflow:hidden;border-radius:22px;border:1px solid #252b33;background:#15191d;min-height:410px}
.thumb{aspect-ratio:16/10;background:#1a2026;display:flex;align-items:center;justify-content:center;color:#64748b;font-size:13px}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.card-body{display:flex;flex:1;flex-direction:column;padding:18px;gap:14px}
.card-top{display:flex;flex-direction:column;gap:6px}
.card-top h3{margin:0;font-size:18px;line-height:1.3}
.meta{color:#94a3b8;font-size:12px}
.set-badges,.metric-row{display:flex;gap:8px;flex-wrap:wrap}
.badge,.metric-pill{padding:4px 8px;border-radius:999px;border:1px solid #313843;color:#dbe4ee;font-size:11px}
.metric-pill{display:inline-flex;align-items:center;gap:6px;background:#14181d}
.metric-label{color:#94a3b8}
.tag-preview{display:flex;flex-direction:column;gap:8px}
.preview-line{margin:0;font-size:12px;line-height:1.6;color:#cbd5e1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.card-actions{margin-top:auto;display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.empty-state{padding:28px;border:1px dashed #343b44;border-radius:20px;color:#94a3b8;text-align:center}

@media (max-width:760px){
  .site-header,.hero-panel{flex-direction:column;align-items:flex-start}
  .gallery-shell{padding-inline:18px}
  .site-header{padding:22px 18px}
  .auth-user{width:100%;margin-left:0;justify-content:space-between}
  .card-actions{justify-content:stretch}
  .card-actions .ghost-btn,.card-actions .primary-btn{flex:1}
}
