
:root{
  --bg:#f6f1e8; --paper:#fbf8f2; --ink:#24211d; --muted:#777066;
  --gold:#ad8541; --line:#d8cdbb; --shadow:0 12px 32px rgba(50,40,25,.12);
  --serif: Georgia, "Times New Roman", serif;
  --sans: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans)}
a{color:inherit}
.header{
  position:sticky;top:0;z-index:50;background:rgba(251,248,242,.94);
  backdrop-filter:blur(10px);border-bottom:1px solid rgba(173,133,65,.18)
}
.nav{max-width:1500px;margin:auto;padding:18px 30px;display:flex;align-items:center;gap:34px}
.brand{font:600 28px/1.1 var(--serif);letter-spacing:.2px;margin-right:auto}
.nav a{text-decoration:none;font-size:14px;color:#4c473f}
.hero{max-width:1500px;margin:0 auto;padding:48px 30px 28px;display:grid;grid-template-columns:1.2fr .8fr;gap:48px;align-items:center}
.hero-visual{background:#eee6d8;padding:18px;box-shadow:var(--shadow)}
.hero-visual img{width:100%;display:block;max-height:620px;object-fit:contain;background:#eee7dc}
.eyebrow{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);font-weight:700}
h1{font:500 clamp(46px,6vw,88px)/.96 var(--serif);margin:12px 0 20px}
.hero p{font:400 18px/1.65 var(--sans);color:#5f594f;max-width:590px}
.notice{border-left:2px solid var(--gold);padding:10px 0 10px 16px;color:#6a6257;font-size:14px;margin-top:25px}
.section{max-width:1500px;margin:0 auto;padding:56px 30px}
.section-head{display:flex;gap:30px;align-items:end;justify-content:space-between;margin-bottom:26px}
h2{font:500 clamp(34px,4vw,55px)/1 var(--serif);margin:0}
.count{color:var(--muted);font-size:14px}
.controls{display:flex;flex-wrap:wrap;gap:10px 14px;margin:22px 0 36px;align-items:center}
.btn,.select,.search{
  border:1px solid var(--line);background:rgba(255,255,255,.38);color:#4d473e;
  border-radius:999px;padding:10px 15px;font:500 13px var(--sans)
}
.btn{cursor:pointer}
.btn.active{border-color:var(--gold);color:#7d5d25;background:#fffaf0}
.search{min-width:230px;border-radius:12px;outline:none}
.select{border-radius:12px;outline:none}
.gallery{columns:4 270px;column-gap:24px}
.card{
  display:inline-block;width:100%;break-inside:avoid;margin:0 0 28px;background:var(--paper);
  border:1px solid rgba(173,133,65,.16);box-shadow:0 6px 20px rgba(44,35,24,.08);
  cursor:pointer;transition:transform .18s ease, box-shadow .18s ease
}
.card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(44,35,24,.14)}
.card img{display:block;width:100%;height:auto;background:#ece6dd}
.meta{padding:13px 14px 15px}
.title{font:500 20px/1.2 var(--serif);margin-bottom:6px}
.sub{font-size:12px;color:var(--muted);display:flex;gap:8px;flex-wrap:wrap}
.dot::before{content:"·";margin-right:8px;color:var(--gold)}
.empty{display:none;text-align:center;padding:70px 20px;color:var(--muted)}
.about{display:grid;grid-template-columns:.7fr 1.3fr;gap:60px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.about p{font:400 17px/1.7 var(--sans);color:#5f594f;max-width:760px}
.footer{max-width:1500px;margin:auto;padding:30px;color:#766f64;font-size:13px;display:flex;justify-content:space-between;gap:20px}
.modal{
  position:fixed;inset:0;z-index:100;background:rgba(25,22,18,.88);display:none;align-items:center;justify-content:center;padding:25px
}
.modal.open{display:flex}
.modal-panel{
  position:relative;width:min(1280px,96vw);max-height:94vh;background:var(--paper);display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(290px,.55fr);overflow:hidden;box-shadow:0 30px 90px rgba(0,0,0,.4)
}
.modal-img-wrap{background:#211f1b;min-height:520px;display:flex;align-items:center;justify-content:center}
.modal-img{max-width:100%;max-height:94vh;object-fit:contain}
.modal-info{padding:42px 34px;overflow:auto}
.modal-info h3{font:500 42px/1.05 var(--serif);margin:0 0 24px}
.detail-row{border-top:1px solid var(--line);padding:13px 0;display:grid;grid-template-columns:110px 1fr;gap:18px;font-size:14px}
.detail-row span:first-child{color:#8a8277;text-transform:uppercase;letter-spacing:.08em;font-size:11px}
.source{margin-top:24px;color:#9a9287;font-size:11px;word-break:break-word}
.close,.prev,.next{
  position:absolute;border:0;background:rgba(251,248,242,.94);color:#3c372f;cursor:pointer;
  width:42px;height:42px;border-radius:50%;font-size:23px;box-shadow:0 4px 16px rgba(0,0,0,.18)
}
.close{right:14px;top:14px;z-index:3}.prev{left:14px;top:50%;transform:translateY(-50%)}.next{right:14px;top:50%;transform:translateY(-50%)}
@media(max-width:900px){
  .hero{grid-template-columns:1fr;gap:28px}.hero-visual{order:2}
  .nav a{display:none}.about{grid-template-columns:1fr;gap:20px}
  .modal-panel{grid-template-columns:1fr;overflow:auto}.modal-img-wrap{min-height:42vh}
  .modal-info{padding:28px 24px}.modal-info h3{font-size:34px}
}
@media(max-width:560px){
  .nav,.hero,.section{padding-left:18px;padding-right:18px}
  .brand{font-size:23px}.gallery{columns:1}
  .section-head{align-items:flex-start;flex-direction:column}
  .controls{align-items:stretch}.search,.select{width:100%}
  .footer{padding:25px 18px;flex-direction:column}
}

/* Final gallery refinements */
.card{padding:12px 12px 0;border-radius:2px;background:#fcfaf5}
.card img{width:100%;height:auto;object-fit:contain;background:#f1ece3}
.meta{padding:14px 4px 16px}
.title{font-size:18px}
.gallery{column-gap:30px}
.hero-visual{background:#f1eadf;border:1px solid rgba(173,133,65,.16)}
.hero-visual img{object-fit:contain}
@media(min-width:1200px){.gallery{columns:4 290px}}
