:root {
  --bg: #f6efe4;
  --paper: #fffaf3;
  --ink: #3f3129;
  --muted: #7f6a5a;
  --line: #dfcfbe;
  --accent: #9d6b4b;
  --accent-dark: #7f5337;
  --success: #667f5b;
  --shadow: 0 18px 40px rgba(76, 54, 38, 0.12);
  --radius: 22px;
}
* { box-sizing: border-box; }
body {
  margin: 0;
  background: linear-gradient(180deg, #f7f1e8 0%, #f3eadf 100%);
  color: var(--ink);
  font-family: 'Inter', sans-serif;
}
a { color: inherit; }
.shell {
  width: min(1100px, calc(100% - 28px));
  margin: 0 auto;
  padding: 24px 0 48px;
}
.hero {
  text-align: center;
  padding: 28px 18px 10px;
}
.kicker {
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--muted);
  font-size: 12px;
  margin-bottom: 10px;
}
h1,h2,h3 {
  font-family: 'Cormorant Garamond', serif;
  line-height: 1;
  margin: 0;
}
h1 { font-size: clamp(3rem, 8vw, 5.4rem); }
h2 { font-size: clamp(2rem, 5vw, 3.1rem); }
p { color: var(--muted); line-height: 1.6; }
.card {
  background: rgba(255,250,243,.92);
  border: 1px solid rgba(123, 95, 74, 0.12);
  box-shadow: var(--shadow);
  border-radius: var(--radius);
  padding: 22px;
}
.stack { display: grid; gap: 18px; }
.center-card { width: min(620px, 100%); margin: 0 auto; }
label { display:block; font-size: 14px; color: var(--ink); margin-bottom: 8px; font-weight: 600; }
input[type=text], input[type=password], textarea, input[type=file] {
  width: 100%; padding: 16px 18px; border-radius: 16px; border: 1px solid var(--line); background: #fffdf9; color: var(--ink); font: inherit;
}
textarea { min-height: 96px; resize: vertical; }
button, .button {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  border: 0; border-radius: 999px; padding: 14px 22px; background: var(--accent); color: #fff; font-weight: 600; text-decoration: none; cursor: pointer;
}
button:hover, .button:hover { background: var(--accent-dark); }
.button.secondary { background: transparent; color: var(--ink); border: 1px solid var(--line); }
.notice, .error {
  padding: 14px 16px; border-radius: 16px; font-size: 14px;
}
.notice { background: #f0efe4; color: #4f5a42; }
.error { background: #fff0ef; color: #8a4039; }
.topbar { display:flex; justify-content:space-between; gap:12px; align-items:center; margin-bottom:20px; flex-wrap:wrap; }
.gallery-grid, .admin-grid, .caption-grid { display:grid; gap:18px; }
.gallery-grid { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.admin-grid { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.caption-grid { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.photo-card { overflow:hidden; padding:0; }
.photo-card img { width:100%; height:260px; object-fit:cover; display:block; background:#eadfd1; }
.photo-meta { padding:16px; display:grid; gap:10px; }
.badges { display:flex; flex-wrap:wrap; gap:8px; }
.badge { display:inline-flex; border-radius:999px; padding:7px 12px; font-size:12px; font-weight:600; }
.badge.soft { background:#f1e7da; color:#83593e; }
.badge.good { background:#ebf1e8; color:#5e744e; }
.meta-line { font-size:14px; color: var(--muted); }
.actions { display:flex; flex-wrap:wrap; gap:10px; }
.muted-link { color:var(--muted); text-decoration:none; }
.small { font-size:13px; color:var(--muted); }
.step { width:40px; height:40px; border-radius:999px; background:#f0e2d4; display:inline-flex; align-items:center; justify-content:center; font-weight:700; margin-bottom:10px; }
footer.note { text-align:center; padding:30px 0 10px; color:var(--muted); font-size:13px; }
@media (max-width: 700px) {
  .shell { width: min(100%, calc(100% - 18px)); }
  .card { padding: 18px; border-radius: 20px; }
  .photo-card img { height: 220px; }
}

.button-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.big-action{display:grid;gap:8px;background:rgba(255,250,243,.92);border:1px solid rgba(123,95,74,.12);box-shadow:var(--shadow);border-radius:var(--radius);padding:28px 22px;text-decoration:none;color:var(--ink);text-align:center}
.big-action strong{font-size:1.35rem}
.big-action span{color:var(--muted)}
.compact-hero{padding-bottom:0}
.centered-actions{justify-content:center}
@media (max-width: 760px){.button-grid{grid-template-columns:1fr}}

.admin-shell .photo-card img{height:220px}
.admin-card{padding:0;overflow:hidden}
.admin-card .photo-meta{padding:16px}
.admin-card form{display:inline-flex}
.admin-card .actions{align-items:center}

select { width: 100%; padding: 16px 18px; border-radius: 16px; border: 1px solid var(--line); background: #fffdf9; color: var(--ink); font: inherit; }
.album-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px}
.album-card{display:grid;gap:10px;background:#fffaf3;border:1px solid rgba(123,95,74,.12);box-shadow:var(--shadow);border-radius:20px;padding:18px;text-align:left}
.album-card.selected{outline:2px solid rgba(157,107,75,.35)}
.album-card button{width:100%}
.album-card span{color:var(--muted);font-size:14px}
.album-filters{display:flex;flex-wrap:wrap;gap:10px}
.filter-chip{display:inline-flex;padding:10px 14px;border-radius:999px;border:1px solid var(--line);text-decoration:none;background:#fffdf9;color:var(--ink)}
.filter-chip.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.album-create-form{max-width:520px}

.site-nav{position:sticky;top:0;z-index:50;background:rgba(247,241,232,.92);backdrop-filter:blur(8px);border-bottom:1px solid rgba(123,95,74,.12)}
.nav-wrap{width:min(1100px,calc(100% - 28px));margin:0 auto;padding:14px 0;display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.brand{font-family:'Cormorant Garamond',serif;font-size:2rem;text-decoration:none}
.nav-links{display:flex;gap:10px;flex-wrap:wrap}
.nav-links a{text-decoration:none;padding:10px 14px;border-radius:999px;background:#fffaf3;border:1px solid rgba(123,95,74,.12)}
.nav-links a:hover{background:#efe2d2}
@media (max-width:700px){.nav-wrap{width:min(100%,calc(100% - 18px))}.nav-links{width:100%}}


.browse-grid .browse-card{text-decoration:none;color:var(--ink)}
.browse-grid .browse-link{display:inline-flex;justify-content:center;align-items:center;padding:14px 18px;border-radius:999px;background:var(--accent);color:#fff;font-weight:600;margin-top:4px}
.browse-grid .browse-card:hover .browse-link{background:var(--accent-dark)}

.site-nav{box-shadow:0 6px 18px rgba(76,54,38,.08)}
.nav-links a.active,.nav-links a[aria-current='page']{background:var(--accent);color:#fff;border-color:var(--accent)}

@media (max-width:700px){
  .nav-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .nav-links a{text-align:center}
  .brand{width:100%;text-align:center}
}
