/* ==========================================================================
   Dark UI theme — shared stylesheet
   Used by: home, gallery, photo, artists, artist pages
   ========================================================================== */

:root{
  --bg:#14161a;
  --surface:#1c1f26;
  --surface-2:#242832;
  --border-strong:#3a3f4b;
  --text:#e8eaed;
  --text-muted:#9aa0ac;
  --accent:#5b8def;
  --accent-2:#7c5cf0;
  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

/* Light theme override — applied when <html data-theme="light"> */
html[data-theme="light"]{
  --bg:#f4f5f7;
  --surface:#ffffff;
  --surface-2:#eef0f3;
  --border-strong:#d7dbe2;
  --text:#14161a;
  --text-muted:#5b6270;
  --accent:#3b6fd9;
  --accent-2:#6d4fd1;
}

*{box-sizing:border-box;}
body{
  margin:0;background:var(--bg);color:var(--text);
  font-family:var(--sans);line-height:1.5;
  transition:background-color .2s ease,color .2s ease;
}
.wrap{max-width:1400px;margin:0 auto;padding:1.5rem 1.5rem 4rem;}

/* ---------- Navbar ---------- */
.navbar{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  background:var(--surface-2);border:1px solid var(--border-strong);
  border-radius:8px;padding:.7rem 1rem;margin-bottom:2rem;
  position:sticky;top:0;z-index:50;flex-wrap:wrap;
  backdrop-filter:blur(8px);
  box-shadow:0 6px 20px #00000040;
  transition:background-color .2s ease,border-color .2s ease;
}
.brand{
  font-weight:700;display:flex;align-items:center;gap:.5rem;font-size:.95rem;flex:none;
  color:var(--text);text-decoration:none;cursor:pointer;transition:color .15s ease;
}
.brand:hover{color:var(--accent);}
.brand svg{display:block;}

.nav-right{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;flex:1;min-width:0;justify-content:flex-end;}

/* dropdown menu replacing inline nav links */
.nav-menu{position:relative;flex:none;}
.nav-menu-btn{
  display:flex;align-items:center;gap:.4rem;
  background:var(--surface);border:1px solid var(--border-strong);color:var(--text);
  padding:.5rem .8rem;border-radius:7px;font-size:.82rem;font-family:inherit;
  cursor:pointer;transition:border-color .15s ease;
}
.nav-menu-btn:hover{border-color:var(--accent);}
.nav-menu-btn .caret{font-size:.65rem;color:var(--text-muted);transition:transform .15s ease;}
.nav-menu-btn.open .caret{transform:rotate(180deg);}
.nav-menu-panel{
  position:absolute;top:calc(100% + 8px);left:0;
  background:var(--surface-2);border:1px solid var(--border-strong);border-radius:8px;
  min-width:170px;padding:.4rem;display:none;flex-direction:column;gap:.15rem;
  z-index:60;box-shadow:0 12px 30px #00000066;
}
.nav-menu-panel.open{display:flex;}
.nav-menu-panel a{
  padding:.5rem .6rem;border-radius:6px;color:var(--text-muted);
  text-decoration:none;font-size:.85rem;
}
.nav-menu-panel a:hover{background:var(--surface);color:var(--text);}
.nav-menu-panel a.active{color:var(--text);font-weight:600;}

.nav-search{
  display:flex;align-items:center;gap:.4rem;
  background:var(--surface);border:1px solid var(--border-strong);
  border-radius:7px;padding:.4rem .6rem;color:var(--text-muted);font-size:.8rem;
  flex:1 1 auto;min-width:0;margin:0;
}
.nav-search-icon{
  background:none;border:none;padding:0;margin:0;color:inherit;font-size:inherit;
  cursor:pointer;line-height:1;flex:none;
}
.nav-search-icon:hover{color:var(--text);}
.nav-search input{
  background:transparent;border:none;outline:none;color:var(--text);font-size:.8rem;
  width:100%;min-width:0;font-family:inherit;
}
.nav-search input::placeholder{color:#5c6270;}

/* ---------- Buttons ---------- */
.btn{
  font-family:inherit;font-size:.85rem;font-weight:600;
  padding:.55rem 1.1rem;border-radius:7px;border:1px solid transparent;
  cursor:pointer;transition:filter .15s ease,background .15s ease,color .15s ease;
  text-decoration:none;display:inline-flex;align-items:center;gap:.5rem;
}
.btn:hover{filter:brightness(1.15);}
.btn-primary{background:var(--accent);color:#0d1117;}
.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong);}
.btn-outline{background:transparent;color:var(--accent);border-color:var(--accent);}
.btn-outline:hover{background:var(--accent);color:#0d1117;filter:none;}
.btn-sm{padding:.4rem .8rem;font-size:.78rem;}

/* ---------- Breadcrumb ---------- */
.breadcrumb{display:flex;gap:.4rem;font-size:.8rem;color:var(--text-muted);align-items:center;margin-bottom:1.4rem;}
.breadcrumb a{color:var(--text-muted);text-decoration:none;}
.breadcrumb a:hover{color:var(--text);}
.breadcrumb .sep{opacity:.5;}
.breadcrumb .current{color:var(--text);}

/* ---------- Page header ---------- */
.page-head{margin-bottom:1.5rem;text-align:center;}
.page-head h1{font-size:1.5rem;margin:0 0 .3rem;font-weight:700;letter-spacing:-.02em;}
.page-head p{margin:0;color:var(--text-muted);font-size:.9rem;}

.btn-group{
  display:inline-flex;margin-top:1rem;border:1px solid var(--border-strong);
  border-radius:8px;overflow:hidden;
}
.btn-group button,
.btn-group a{
  font-family:inherit;font-size:.82rem;font-weight:600;
  padding:.5rem 1.2rem;border:none;background:var(--surface-2);
  color:var(--text-muted);cursor:pointer;text-decoration:none;display:inline-block;
  transition:background .15s ease,color .15s ease,transform .15s ease,box-shadow .15s ease;
}
.btn-group button + button,
.btn-group a + a{border-left:1px solid var(--border-strong);}
.btn-group button:hover,
.btn-group a:hover{color:var(--text);transform:translateY(-2px);box-shadow:0 6px 14px #00000040;position:relative;z-index:1;}
.btn-group button.active,
.btn-group a.active{background:var(--accent);color:#0d1117;}

/* ---------- Toolbar / sort ---------- */
.toolbar{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:1.3rem;flex-wrap:wrap;gap:.8rem;
}
.toolbar .count{color:var(--text-muted);font-size:.85rem;}
.sort-group{display:flex;align-items:center;gap:.5rem;}
.sort-group label{font-size:.8rem;color:var(--text-muted);}
.sort-select{
  background:var(--surface-2);color:var(--text);border:1px solid var(--border-strong);
  border-radius:7px;padding:.45rem .7rem;font-size:.82rem;font-family:inherit;
  cursor:pointer;outline:none;
}
.sort-select:focus{border-color:var(--accent);}

/* ---------- Gallery grid ---------- */
.gallery{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem;margin-bottom:2rem;
}
.g-item{
  cursor:pointer;display:block;text-decoration:none;color:inherit;
}
.gallery .g-item:nth-child(2n){animation-delay:.6s;}
.gallery .g-item:nth-child(3n){animation-delay:1.2s;}
.gallery .g-item:nth-child(4n){animation-delay:1.8s;}
.gallery .g-item:nth-child(5n){animation-delay:2.4s;}

.g-thumb{
  aspect-ratio:16/9;border-radius:9px;border:1px solid var(--border-strong);
  background:repeating-linear-gradient(135deg,#2a3040 0 10px,#242832 10px 20px);
  display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;
  transition:border-color .15s ease, transform .15s ease;
}
.g-thumb.portrait{aspect-ratio:9/16;}
.g-item:hover .g-thumb{border-color:var(--accent);transform:translateY(-2px);}
.g-thumb .tag{
  background:#000000b3;color:#fff;font-size:.68rem;font-weight:700;
  padding:.15rem .5rem;border-radius:5px;position:absolute;bottom:8px;left:8px;z-index:1;
}
.g-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.g-cap{display:flex;flex-direction:column;align-items:center;gap:.1rem;margin-top:.5rem;font-size:.78rem;text-align:center;}
.g-cap .name{color:var(--text);font-weight:600;}
.g-cap .meta{color:var(--text-muted);}

/* ---------- Pagination ---------- */
.pagination{display:flex;justify-content:center;gap:.35rem;margin-bottom:2.5rem;}
.page-item{
  min-width:32px;height:32px;padding:0 .4rem;display:flex;align-items:center;justify-content:center;
  border-radius:6px;border:1px solid var(--border-strong);font-size:.82rem;color:var(--text-muted);
  cursor:pointer;background:var(--surface-2);text-decoration:none;
  transition:border-color .15s ease,color .15s ease,transform .15s ease,box-shadow .15s ease;
}
.page-item:hover{border-color:var(--accent);color:var(--text);transform:translateY(-2px);box-shadow:0 6px 14px #00000040;}
.page-item.active{background:var(--accent);color:#0d1117;border-color:var(--accent);font-weight:700;}
.page-item.nav{color:var(--text-muted);background:transparent;}

/* ---------- Photo page (single 16:9 photo) ---------- */
.photo-page{max-width:920px;margin:0 auto;text-align:center;}
.photo-title{font-size:1.6rem;font-weight:700;letter-spacing:-.02em;margin:0 0 1.4rem;}
.photo-frame{
  aspect-ratio:16/9;border-radius:12px;border:1px solid var(--border-strong);
  overflow:hidden;background:var(--surface-2);
}
.photo-frame img{width:100%;height:100%;object-fit:cover;display:block;}
.download-row{margin-top:1.5rem;}
.artist-row{
  margin-top:2.2rem;padding-top:1.6rem;border-top:1px solid var(--border-strong);
  display:flex;align-items:center;justify-content:center;gap:.7rem;
}
.artist-row .avatar{
  width:40px;height:40px;border-radius:50%;background:var(--accent-2);
  display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;color:#0d1117;
}
.artist-row .info{text-align:left;}
.artist-row .info .label{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;}
.artist-row .info .name{font-size:.95rem;font-weight:600;}

/* ---------- Artist detail page (single 9:16 portrait) ---------- */
.artist-page{max-width:920px;margin:0 auto;text-align:center;}
.artist-title{font-size:1.6rem;font-weight:700;letter-spacing:-.02em;margin:0 0 1.4rem;}
.portrait-frame{
  width:100%;max-width:340px;margin:0 auto;
  aspect-ratio:9/16;border-radius:12px;border:1px solid var(--border-strong);
  overflow:hidden;background:var(--surface-2);position:relative;
}
.portrait-frame img{width:100%;height:100%;object-fit:cover;display:block;}
.portrait-frame .tag{
  position:absolute;bottom:10px;left:10px;z-index:1;
  background:#000000b3;color:#fff;font-size:.68rem;font-weight:700;
  padding:.15rem .5rem;border-radius:5px;
}

.details-card{
  max-width:480px;margin:1.8rem auto 0;text-align:left;
  background:var(--surface-2);border:1px solid var(--border-strong);
  border-radius:10px;overflow:hidden;
}
.detail-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:.75rem 1rem;font-size:.85rem;border-bottom:1px solid var(--border-strong);
}
.detail-row:last-child{border-bottom:none;}
.detail-row .label{color:var(--text-muted);}
.detail-row .value{font-weight:600;color:var(--text);}
.detail-row .value.link{color:var(--accent);text-decoration:none;font-weight:600;}
.detail-row .value.link:hover{text-decoration:underline;}
.social-icons{display:flex;gap:.5rem;}
.social-icons a{
  width:30px;height:30px;border-radius:7px;display:flex;align-items:center;justify-content:center;
  background:var(--surface);border:1px solid var(--border-strong);color:var(--text-muted);
  text-decoration:none;font-size:.7rem;font-weight:700;transition:color .15s ease,border-color .15s ease;
}
.social-icons a:hover{color:var(--text);border-color:var(--accent);}

.works-section{margin-top:2.8rem;padding-top:1.8rem;border-top:1px solid var(--border-strong);}
.works-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.1rem;}
.works-head h2{font-size:1.05rem;font-weight:700;margin:0;}
.works-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.4rem;}
.work-thumb{
  aspect-ratio:16/9;border-radius:9px;border:1px solid var(--border-strong);
  overflow:hidden;background:var(--surface-2);transition:border-color .15s ease,transform .15s ease;
}
.work-thumb:hover{border-color:var(--accent);transform:translateY(-2px);}
.work-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.view-more{text-align:center;}

/* ---------- Home page featured frame (single 9:16) ---------- */
.featured{display:flex;justify-content:center;margin-bottom:2.5rem;}
.featured-frame{
  width:100%;max-width:420px;aspect-ratio:9/16;
  border-radius:12px;border:1px solid var(--border-strong);
  overflow:hidden;background:var(--surface-2);position:relative;
}
.featured-frame img{width:100%;height:100%;object-fit:cover;display:block;}
.featured-frame .tag{
  position:absolute;bottom:10px;left:10px;z-index:1;
  background:#000000b3;color:#fff;font-size:.68rem;font-weight:700;
  padding:.15rem .5rem;border-radius:5px;
}

/* ---------- Footer ---------- */
footer{border-top:1px solid var(--border-strong);padding-top:1.5rem;margin-top:1.5rem;transition:border-color .2s ease;}
.footer-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;font-size:.78rem;}
.footer-cols h5{margin:0 0 .5rem;font-size:.72rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;}
.footer-cols a{display:block;color:var(--text-muted);text-decoration:none;margin-bottom:.4rem;}
.footer-bottom{
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.6rem;
  color:var(--text-muted);font-size:.75rem;
  margin-top:1.5rem;padding-top:1.2rem;border-top:1px solid var(--border-strong);
}

/* theme toggle button, lives in the footer */
.theme-toggle{
  display:inline-flex;align-items:center;gap:.4rem;
  background:var(--surface-2);border:1px solid var(--border-strong);color:var(--text-muted);
  padding:.4rem .8rem;border-radius:7px;font-size:.78rem;font-family:inherit;font-weight:600;
  cursor:pointer;transition:color .15s ease,border-color .15s ease,background-color .2s ease;
}
.theme-toggle:hover{color:var(--text);border-color:var(--accent);}

/* ---------- Responsive ---------- */
@media (prefers-reduced-motion: reduce){
  .g-item{animation:none;}
}
@media (max-width:900px){
  .gallery{grid-template-columns:repeat(2,1fr);}
  .footer-cols{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:640px){
  .navbar{padding:.6rem .8rem;}
  .nav-right{width:100%;order:3;}
  .nav-search{order:1;}
  .nav-menu{order:2;}
  .gallery{grid-template-columns:1fr;}
  .photo-title,.artist-title{font-size:1.3rem;}
  .works-grid{grid-template-columns:1fr;}
}
@media (max-width:380px){
  .nav-search span{display:none;}
}
