/* ===== Le Pointre — MANIFESTO ===== */
:root{
  --bg:#141414; --bg2:#1c1c1c; --fg:#f4f1ea; --muted:#9a958c;
  --line:#2c2c2c; --accent:#e23b2e; --card:#1a1a1a;
  --font-display:"Oswald","Arial Narrow",Impact,sans-serif;
  --font-body:"Inter",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-body);
  line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:1180px;margin:0 auto;padding:0 22px}

/* header */
.site-head{position:sticky;top:0;z-index:30;background:rgba(20,20,20,.9);
  backdrop-filter:blur(8px);border-bottom:2px solid var(--accent)}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{font-family:var(--font-display);font-weight:700;letter-spacing:.22em;
  text-transform:uppercase;font-size:24px}
.brand b{color:var(--accent)}
.nav a{margin-left:20px;font-family:var(--font-display);text-transform:uppercase;
  letter-spacing:.12em;font-size:14px;color:var(--muted)}
.nav a:hover{color:var(--accent)}
/* title banner (big, visible — like Overblog) */
.title-banner{background:var(--bg2);border-bottom:2px solid var(--accent);padding:18px 22px;text-align:center}
.title-banner span{font-family:var(--font-display);font-weight:700;text-transform:uppercase;
  letter-spacing:.04em;font-size:clamp(22px,4.4vw,46px);line-height:1.05;color:var(--fg)}
/* photo banner */
.photo-banner{width:100%;padding:14px 16px 4px;display:flex;justify-content:center;background:var(--bg);border-bottom:2px solid var(--line)}
.photo-banner img{width:auto;max-width:min(860px,92%);height:auto;max-height:340px;object-fit:contain;filter:grayscale(.12) contrast(1.03);border:1px solid var(--line)}
/* dropdown nav */
.nav-dd{position:relative;display:inline-block}
.nav-dd .dd-trigger{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.12em;
  font-size:14px;color:var(--muted);margin-left:20px;cursor:pointer}
.nav-dd .dd-trigger:hover{color:var(--accent)}
.dd-box{position:absolute;top:100%;left:0;margin-top:10px;background:var(--bg2);border:1px solid var(--line);
  border-top:2px solid var(--accent);min-width:240px;max-height:60vh;overflow:auto;padding:6px 0;
  display:none;z-index:50;box-shadow:0 14px 40px rgba(0,0,0,.5)}
.dd-box.wide{min-width:320px}
.nav-dd:hover .dd-box,.nav-dd.open .dd-box{display:block}
.dd-box .dd-year{font-family:var(--font-display);color:var(--accent);font-size:12px;letter-spacing:.1em;
  padding:8px 14px 4px;text-transform:uppercase}
.dd-box .dd-item{display:block;padding:6px 14px;color:var(--fg);font-size:13px;line-height:1.25;
  border-bottom:1px solid rgba(255,255,255,.04)}
.dd-box .dd-item:hover{background:var(--accent);color:#fff}
@media(max-width:980px){
  .site-title{display:none}
  .dd-box{max-height:50vh}
}

/* hero */
.hero{position:relative;border-bottom:2px solid var(--line);overflow:hidden}
.hero-img{width:100%;height:62vh;min-height:340px;object-fit:cover;filter:grayscale(.25) contrast(1.05)}
.hero-veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.15),rgba(20,20,20,.92))}
.hero-txt{position:absolute;left:0;right:0;bottom:0;padding:34px 22px}
.hero-txt h1{font-family:var(--font-display);font-weight:700;letter-spacing:.04em;
  text-transform:uppercase;font-size:clamp(40px,9vw,110px);margin:0;line-height:.92}
.hero-txt h1 b{color:var(--accent);font-style:italic}
.hero-txt p{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.18em;
  color:var(--fg);opacity:.85;margin:10px 0 0;font-size:clamp(13px,2vw,18px)}
.hero-note{position:absolute;top:18px;left:22px;font-family:var(--font-display);
  text-transform:uppercase;letter-spacing:.3em;font-size:12px;color:var(--accent);
  border:1px solid var(--accent);padding:4px 10px;transform:rotate(-2deg)}

/* section label */
.sec-label{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.3em;
  font-size:13px;color:var(--accent);padding:46px 22px 6px;border-bottom:1px solid var(--line);
  max-width:1180px;margin:0 auto}
.sec-label b{color:var(--fg)}

/* post tiles */
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;
  padding:24px 22px 60px;max-width:1180px;margin:0 auto}
.tile{position:relative;background:var(--card);border:1px solid var(--line);
  overflow:hidden;cursor:pointer;transition:transform .25s,border-color .25s;transform:rotate(var(--rot,0deg))}
.tile:hover{transform:rotate(0) scale(1.02);border-color:var(--accent);z-index:5}
.tile .ph{aspect-ratio:4/3;overflow:hidden;background:#000}
.tile .ph img{width:100%;height:100%;object-fit:cover;filter:grayscale(.2) contrast(1.05);
  transition:transform .4s}
.tile:hover .ph img{transform:scale(1.06);filter:none}
.tile .ph-empty{display:flex;align-items:center;justify-content:center;background:
  repeating-linear-gradient(45deg,#1a1a1a,#1a1a1a 10px,#222 10px,#222 20px)}
.tile .ph-empty span{font-family:var(--font-display);text-transform:uppercase;
  letter-spacing:.06em;font-size:14px;color:var(--muted);text-align:center;padding:10px}
.tile .cap{padding:11px 12px 13px}
.tile .cap h3{margin:0;font-family:var(--font-display);text-transform:uppercase;
  letter-spacing:.04em;font-size:16px;line-height:1.1}
.tile .cap .d{color:var(--muted);font-size:12px;margin-top:4px;letter-spacing:.05em}
.tile .tag{position:absolute;top:8px;left:8px;background:var(--accent);color:#fff;
  font-family:var(--font-display);font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  padding:2px 8px;transform:rotate(-3deg)}

/* gallery strip (every artwork) */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));
  gap:8px;padding:24px 22px 60px;max-width:1180px;margin:0 auto}
.gcell{position:relative;aspect-ratio:1/1;overflow:hidden;background:#000;cursor:zoom-in}
.gcell img{width:100%;height:100%;object-fit:cover;transition:transform .35s,filter .35s;
  filter:grayscale(.25)}
.gcell:hover img{transform:scale(1.06);filter:none}
.gcell .tag{position:absolute;bottom:0;left:0;right:0;padding:6px 8px;font-size:11px;
  background:linear-gradient(transparent,rgba(0,0,0,.8));color:#fff;opacity:0;transition:opacity .3s}
.gcell:hover .tag{opacity:1}

/* post body page */
.post{max-width:860px;margin:0 auto;padding:40px 22px 70px}
.post h1{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.02em;
  font-size:clamp(28px,5vw,52px);line-height:1;margin:0 0 6px}
.post .date{color:var(--accent);font-family:var(--font-display);letter-spacing:.18em;
  text-transform:uppercase;font-size:13px;margin-bottom:26px}
.post .body img{border:1px solid var(--line);margin:18px 0;border-radius:2px;cursor:zoom-in}
.post .body p{font-size:17px}
.backlink{display:inline-block;margin:30px 22px;font-family:var(--font-display);
  text-transform:uppercase;letter-spacing:.15em;color:var(--accent);font-size:13px}

/* generic page */
.page{max-width:760px;margin:0 auto;padding:48px 22px 70px}
.page h1{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(34px,6vw,64px);
  letter-spacing:.02em;margin:0 0 20px}
.page h1 b{color:var(--accent)}
.page p{font-size:17px;line-height:1.6}
.page ul{font-size:17px;line-height:1.7;padding-left:20px}
.page li{margin:6px 0}
.page a{color:var(--accent)}
/* WhatsApp / call-to-action button */
.wa-btn{display:inline-block;margin:14px 0;background:var(--accent);color:#fff !important;
  padding:12px 18px;border-radius:5px;font-family:var(--font-display);text-transform:uppercase;
  letter-spacing:.08em;font-size:15px;font-weight:700;text-decoration:none}
.wa-btn:hover{opacity:.9}
/* listing pages (Pages / Archives) */
.year-group{margin:0 0 26px}
.year-group h2{font-family:var(--font-display);color:var(--accent);font-size:20px;letter-spacing:.08em;
  text-transform:uppercase;margin:0 0 10px;border-bottom:2px solid var(--line);padding-bottom:6px}
.post-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 22px}
.post-list a{display:block;padding:9px 12px;background:var(--bg2);border:1px solid var(--line);
  color:var(--fg);font-size:14px;border-left:3px solid var(--accent)}
.post-list a:hover{background:var(--accent);color:#fff}
@media(max-width:560px){.post-list{grid-template-columns:1fr}}

/* footer */
.site-foot{border-top:2px solid var(--line);padding:28px 22px;color:var(--muted);
  text-align:center;font-size:13px}
.site-foot b{color:var(--fg)}

/* lightbox */
#lb{position:fixed;inset:0;background:rgba(8,8,8,.96);display:none;align-items:center;
  justify-content:center;z-index:100}
#lb.on{display:flex}
#lb img{max-width:92vw;max-height:88vh;border:1px solid var(--line)}
#lb .x,#lb .p,#lb .n{position:fixed;background:none;border:none;color:#fff;cursor:pointer;
  font-size:42px;opacity:.75}
#lb .x{top:16px;right:22px}#lb .p{left:16px;top:50%}#lb .n{right:16px;top:50%}
#lb .x:hover,#lb .p:hover,#lb .n:hover{color:var(--accent);opacity:1}

/* responsive */
@media(max-width:980px){.tiles{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){
  .tiles{grid-template-columns:1fr}
  .site-head .wrap{height:56px}
  .brand{font-size:19px}
  .nav a{margin-left:13px;font-size:12px}
  .hero-img{height:48vh;min-height:260px}
  .gallery{grid-template-columns:repeat(2,1fr)}
}
