/* =========================================================
   HOOLALA.TM — GALERIE (design V2) · inspiration « HUD »
   Cadre technique (repères, graduations, compteur), écran photo
   plein cadre, carte « suivante », catégories en pastilles.
   ========================================================= */
.gl{--gl-frame:#e4e4e1;--gl-frame-2:#d6d6d2;--gl-mark:rgba(10,10,10,.55);--gl-y:#f2d230;--gl-mono:"JetBrains Mono",ui-monospace,Menlo,monospace}
@media (prefers-color-scheme:dark){.gl{--gl-frame:#161616;--gl-frame-2:#1f1f1f;--gl-mark:rgba(245,245,243,.5)}}

/* ---------- Cadre HUD ---------- */
.gl-hud{padding:clamp(12px,1.6vw,22px)}
.gl-frame{position:relative;padding:clamp(40px,4vw,64px) clamp(20px,4vw,72px) clamp(36px,3.6vw,56px);border-radius:clamp(18px,2vw,30px);background:linear-gradient(180deg,var(--gl-frame),var(--gl-frame-2));overflow:hidden}
.gl-corner{position:absolute;width:clamp(26px,3vw,44px);height:clamp(26px,3vw,44px);border:2px solid var(--gl-mark)}
.gl-corner.tl{left:14px;top:14px;border-right:0;border-bottom:0;border-radius:10px 0 0 0}
.gl-corner.tr{right:14px;top:14px;border-left:0;border-bottom:0;border-radius:0 10px 0 0}
.gl-corner.bl{left:14px;bottom:14px;border-right:0;border-top:0;border-radius:0 0 0 10px}
.gl-corner.br{right:14px;bottom:14px;border-left:0;border-top:0;border-radius:0 0 10px 0}
.gl-ticks{position:absolute;top:30%;bottom:30%;width:10px;background:repeating-linear-gradient(180deg,var(--gl-mark) 0 1px,transparent 1px 10px);opacity:.6}
.gl-ticks--l{left:clamp(8px,1.4vw,22px)}.gl-ticks--r{right:clamp(8px,1.4vw,22px)}
.gl-hud-top{display:flex;align-items:center;gap:14px;margin-bottom:14px;font:500 12px var(--gl-mono);color:var(--hd-fg)}
.gl-chip-y{padding:4px 10px;border:1.5px solid var(--hd-fg);background:var(--gl-y);color:#0a0a0a;font:700 11px var(--gl-mono);letter-spacing:.12em;text-transform:uppercase}
.gl-counter{padding:4px 10px;border:1.5px solid var(--hd-fg);font:500 12px var(--gl-mono)}
.gl-counter b{font-weight:700}
.gl-hud-meta{margin-left:auto;text-transform:uppercase;letter-spacing:.08em;color:var(--hd-fg-2)}
.gl-hud-bottom{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:14px;font:500 11px var(--gl-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--hd-fg-2)}
.gl-ruler{display:flex;gap:10px;align-items:flex-end}
.gl-ruler i{display:block;width:1px;height:8px;background:var(--gl-mark)}
.gl-ruler i:nth-child(5){height:14px;width:2px;background:var(--gl-y);box-shadow:0 0 0 1px var(--hd-fg)}

/* ---------- Écran ---------- */
.gl-screen{position:relative;isolation:isolate;min-height:clamp(480px,64vh,700px);border-radius:clamp(14px,1.6vw,22px);overflow:hidden;background:#0a0a0a;color:#fff;border:clamp(6px,.8vw,10px) solid #0a0a0a;box-shadow:0 30px 70px rgba(0,0,0,.25)}
.gl-slides{position:absolute;inset:0;z-index:-2}
.gl-slides img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.06);transition:opacity 1s var(--hd-ease),transform 6s linear}
.gl-slides img.is-on{opacity:1;transform:scale(1)}
.gl-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(0,0,0,.72) 0%,rgba(0,0,0,.35) 45%,rgba(0,0,0,.05) 70%),linear-gradient(0deg,rgba(0,0,0,.6),transparent 35%)}
.gl-scan{position:absolute;left:0;right:0;top:0;z-index:0;height:30%;background:linear-gradient(180deg,transparent,rgba(255,255,255,.07),transparent);animation:gl-scan 5s linear infinite;pointer-events:none}
@keyframes gl-scan{from{transform:translateY(-100%)}to{transform:translateY(400%)}}
.gl-screen-top{position:absolute;left:0;right:0;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:clamp(16px,2vw,26px) clamp(18px,2.4vw,34px)}
.gl-brand{font:800 15px var(--hd-sans);letter-spacing:-.02em}
.gl-brand small{margin-left:6px;font:500 11px var(--gl-mono);letter-spacing:.12em;text-transform:uppercase;opacity:.7}
.gl-rec{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:99px;background:rgba(255,255,255,.12);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font:500 11px var(--gl-mono);letter-spacing:.1em;text-transform:uppercase}
.gl-rec i{width:8px;height:8px;border-radius:50%;background:#ff3b30;animation:gl-blink 1.2s steps(2) infinite}
@keyframes gl-blink{50%{opacity:.2}}
.gl-screen-main{position:absolute;left:clamp(18px,2.4vw,34px);bottom:clamp(76px,9vh,110px);z-index:2;max-width:min(620px,60%)}
.gl-tag{display:inline-block;margin-bottom:14px;padding:5px 12px;border:1px solid rgba(255,255,255,.5);border-radius:6px;font:500 11px var(--gl-mono);letter-spacing:.12em;text-transform:uppercase}
.gl-title{margin:0;font:800 clamp(72px,11vw,190px)/.8 var(--hd-sans);letter-spacing:-.07em;text-transform:uppercase}
.gl-title span{color:var(--gl-y)}
.gl-lead{margin:18px 0 22px;max-width:44ch;font-size:15px;line-height:1.55;color:rgba(255,255,255,.82)}
.gl-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.gl-btn{display:inline-flex;align-items:center;gap:10px;min-height:46px;padding:0 18px;border-radius:10px;background:#fff;color:#0a0a0a !important;font:600 13px var(--hd-sans);letter-spacing:.02em}
.gl-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;padding:3px;box-sizing:content-box;border-radius:6px;background:#0a0a0a;color:#fff}
.gl-nav{display:flex;gap:6px}
.hd-page .gl-nav button{display:grid;place-items:center;width:46px;height:46px;border-radius:10px;border:1px solid rgba(255,255,255,.4);color:#fff;transition:background .2s}
.hd-page .gl-nav button:hover{background:rgba(255,255,255,.18)}
.gl-nav svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2}
.gl-card{position:absolute;right:clamp(18px,2.4vw,34px);top:50%;z-index:2;display:grid;gap:8px;width:clamp(150px,15vw,220px);padding:10px;border-radius:16px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transform:translateY(-50%)}
.gl-card-label{font:500 10px var(--gl-mono);letter-spacing:.14em;text-transform:uppercase;opacity:.75}
.gl-card-img{aspect-ratio:4/5;overflow:hidden;border-radius:10px;background:#222}
.gl-card-img img{width:100%;height:100%;object-fit:cover}
.gl-card b{font:800 30px/1 var(--hd-sans);letter-spacing:-.04em}
.gl-card span:last-child{font:500 12px var(--hd-sans);opacity:.8}
.gl-filters{position:absolute;right:clamp(18px,2.4vw,34px);bottom:clamp(16px,2vw,26px);z-index:2;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:60%}
.gl-filters a{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:99px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font:500 12px var(--hd-sans);transition:background .2s,color .2s}
.gl-filters a::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.7}
.gl-filters a:hover{background:rgba(255,255,255,.28)}
.gl-filters a.is-active{background:#fff;color:#0a0a0a}
.gl-filters .glr-filter-count{font:500 11px var(--gl-mono);opacity:.7}

/* ---------- Mur de photos ---------- */
.gl-wall{padding:clamp(56px,7vw,110px) 0}
.gl-grid{columns:4 260px;column-gap:clamp(10px,1.4vw,18px)}
.hd-page .gl-item{position:relative;display:block;width:100%;margin:0 0 clamp(10px,1.4vw,18px);break-inside:avoid;overflow:hidden;border-radius:14px;background:var(--hd-bg-2);cursor:zoom-in}
.gl-item img{display:block;width:100%;height:auto;transition:transform 1s var(--hd-ease),filter .4s}
.gl-item:hover img{transform:scale(1.04)}
.gl-item-n{position:absolute;left:10px;top:10px;padding:4px 8px;border-radius:6px;background:rgba(10,10,10,.6);color:#fff;font:500 11px var(--gl-mono);opacity:0;transform:translateY(-4px);transition:opacity .3s,transform .3s}
.gl-item:hover .gl-item-n{opacity:1;transform:none}
.gl-item-c{position:absolute;width:18px;height:18px;border:2px solid #fff;opacity:0;transition:opacity .3s,transform .4s var(--hd-ease)}
.gl-item-c.tl{left:10px;bottom:10px;border-right:0;border-top:0;transform:translate(-6px,6px)}
.gl-item-c.br{right:10px;top:10px;border-left:0;border-bottom:0;transform:translate(6px,-6px)}
.gl-item:hover .gl-item-c{opacity:1;transform:none}
.gl-empty{padding:80px 24px;text-align:center;border:1px dashed var(--hd-line);border-radius:22px;font:500 13px var(--gl-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--hd-fg-2)}

/* Visionneuse (identifiants d'origine) */
.glr-lightbox{position:fixed;inset:0;z-index:9800;display:none;place-items:center;padding:56px 16px;background:rgba(10,10,10,.94)}
.glr-lightbox.is-open{display:grid}
.glr-lightbox-stage{display:grid;place-items:center;width:100%;height:100%}
.glr-lightbox-stage img{max-width:min(94vw,1400px);max-height:84vh;object-fit:contain;border-radius:12px}
.glr-lightbox button{position:absolute;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;border:0;background:rgba(255,255,255,.14);color:#fff;font-size:30px;line-height:1;cursor:pointer}
.glr-lightbox-close{top:16px;right:16px}.glr-lightbox-prev{left:16px;top:50%;transform:translateY(-50%)}.glr-lightbox-next{right:16px;top:50%;transform:translateY(-50%)}

/* ---------- Responsive ---------- */
@media (max-width:1000px){
  .gl-screen-main{max-width:80%}
  .gl-card{display:none}
  .gl-filters{max-width:none;left:clamp(18px,2.4vw,34px);justify-content:flex-start}
  .gl-screen-main{bottom:clamp(110px,16vh,150px)}
}
@media (max-width:640px){
  .gl-frame{padding:46px 14px 40px}
  .gl-ticks{display:none}
  .gl-hud-meta{display:none}
  .gl-hud-bottom span:first-child,.gl-hud-bottom span:last-child{display:none}
  .gl-hud-bottom{justify-content:center}
  .gl-screen{min-height:560px}
  .gl-screen-main{left:16px;right:16px;max-width:none;bottom:150px}
  .gl-title{font-size:clamp(64px,20vw,110px)}
  .gl-filters{left:12px;right:12px;bottom:12px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  .gl-filters::-webkit-scrollbar{display:none}
  .gl-filters a{flex:none}
  .gl-grid{columns:2 140px}
}
