:root{
  --bg:#0b0b0f;
  --panel:#111218;
  --line:#252633;
  --text:#e9e9ee;
  --muted:#a8a9b6;
}

[data-theme="light"]{
  --bg:#f5f5f7;
  --panel:#ffffff;
  --line:#e3e3e8;
  --text:#111111;
  --muted:#666;
}

*{box-sizing:border-box}

body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  transition:background .25s ease,color .25s ease;
}

a{text-decoration:none;color:inherit}

.wrap{max-width:1100px;margin:0 auto;padding:0 16px}
.wrap--narrow{max-width:900px}

.topbar{
  position:sticky;
  top:0;
  z-index:50;
  background:var(--bg); /* bodyと同じ */
  border-bottom:none;
}

.topbar__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:64px;
}

.brand{
  font-family:"Times New Roman", Times, serif; /* Times系 */
  font-size:30px; /* サイトタイトルを大きく */
  font-weight:700;
  letter-spacing:0.5px;
}

.nav{display:flex;gap:10px;align-items:center}

.nav__link{
  padding:6px 10px;
  border-radius:10px;
  font-size:13px;
  color:var(--muted);
}

.nav__link:hover{color:var(--text)}
.nav__link.active{color:var(--text);border:1px solid var(--line)}

.theme-toggle{
  border:1px solid var(--line);
  background:transparent;
  color:var(--text);
  border-radius:10px;
  padding:6px 10px;
  cursor:pointer;
}

.theme-toggle:hover{border-color:var(--text)}

main{padding:40px 0 24px;}

/* Home / Photo */
.frame{
  position:relative;
  border:1px solid var(--line);
  border-radius:18px;
  overflow:hidden;
  background:var(--panel);
}
.frame img{width:100%;display:block}
.frame__empty{padding:90px 0;text-align:center;color:var(--muted)}

.navbtn{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  padding:8px 12px;
  border-radius:999px;
  border:1px solid var(--line);
  background:rgba(0,0,0,.35);
  color:#fff;
  font-size:13px;
}
.navbtn.left{left:12px}
.navbtn.right{right:12px}
.navbtn.disabled{opacity:.25;pointer-events:none}

/* Cards / Pills */
.card{
  border:1px solid var(--line);
  border-radius:18px;
  background:var(--panel);
  padding:16px;
  margin-top:16px;
}

h1{margin:0 0 8px;font-size:20px}

.meta-text{color:var(--muted);font-size:13px}

.tagbar{margin-top:14px;display:flex;gap:8px;flex-wrap:wrap}

.pill{
  font-size:12px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid var(--line);
  color:var(--muted);
}
.pill:hover{color:var(--text)}


/* Archives (grid card internal) */
.grid .card{
  border:1px solid var(--line);
  border-radius:16px;
  overflow:hidden;
  background:var(--panel);
  padding:0;
  margin-top:0;
}
.grid .meta{padding:10px}

/* Archives */
.headrow{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.headtitle{font-weight:650}
.count{color:var(--muted);font-size:13px}

.chips{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 16px}
.chip{
  padding:6px 10px;
  border-radius:999px;
  border:1px solid var(--line);
  color:var(--muted);
  font-size:13px;
}
.chip:hover{color:var(--text)}
.chip.active{color:var(--text);border-color:var(--text)}

.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
@media(min-width:820px){.grid{grid-template-columns:repeat(4,1fr)}}

.thumb{aspect-ratio:1/1;background:var(--panel)}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.btn:hover{color:var(--text);border-color:var(--text)}
.btn.disabled{opacity:.35;pointer-events:none}

.error{
  border:1px solid #5a2026;
  background:#2a0f12;
  border-radius:14px;
  padding:12px 14px;
  color:#ffd6da;
  margin-top:12px;
}