/* Mould gallery as a tilted 3D "mould wall": rows of designs drift in opposite directions,
   the wall straightens as it scrolls into view, rows slow under the pointer and can be dragged.
   Loaded only by projects.html. Without JS (or with reduced motion) it falls back to a plain grid. */
.mw{--mw-navy:#0B1622;--mw-gold:#E5B85C;--mw-h:210px;position:relative;overflow:hidden;background:
  radial-gradient(1200px 520px at 50% 108%,#016fc04d,transparent 70%),
  linear-gradient(#ffffff08 1px,transparent 1px) 0 0/48px 48px,
  linear-gradient(90deg,#ffffff08 1px,transparent 1px) 0 0/48px 48px,
  var(--mw-navy);color:#e6eef6}
.mw .sec-head .label{color:var(--mw-gold)}
.mw .sec-head h2{color:#fff}
.mw .sec-head h2 .accent{color:#4EAEFC}
.mw .sec-head p{color:#b6c4d3}

/* Filter chips */
.mw-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:6px auto 0;max-width:980px}
.mw-chips button{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 16px;border:1px solid #ffffff2e;border-radius:999px;background:#ffffff0d;color:#e6eef6;font:600 14px/1 Inter,sans-serif;cursor:pointer;transition:background .25s,border-color .25s,color .25s}
.mw-chips button b{min-width:26px;padding:4px 7px;border-radius:999px;background:#ffffff1a;font-size:12px;text-align:center}
.mw-chips button:hover{border-color:#4EAEFC;color:#fff}
.mw-chips button[aria-pressed=true]{background:#016FC0;border-color:#016FC0;color:#fff}
.mw-chips button[aria-pressed=true] b{background:var(--mw-gold);color:var(--mw-navy)}
.mw-chips button:focus-visible{outline:3px solid var(--mw-gold);outline-offset:3px}

/* Stage and wall */
.mw-stage{position:relative;margin-top:34px}
.mw-wall{position:relative;padding:40px 0 60px;perspective:1700px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);transition:opacity .35s}
.mw-wall.is-swap{opacity:0}
.mw-plane{display:grid;gap:18px;transform-style:preserve-3d;transform-origin:50% 40%;will-change:transform;
  transform:rotateX(var(--mw-rx,22deg)) rotateZ(var(--mw-rz,-6deg)) scale(var(--mw-s,1.08))}
.mw-row{overflow:visible;touch-action:pan-y;cursor:grab}
.mw-row.is-drag{cursor:grabbing}
.mw-belt{display:flex;gap:18px;width:max-content;will-change:transform}
.mw-card{position:relative;display:block;flex:none;height:var(--mw-h);border-radius:14px;overflow:hidden;background:#fff;box-shadow:0 18px 38px -18px #000c,0 0 0 1px #ffffff14;transition:transform .45s cubic-bezier(.22,.8,.24,1),box-shadow .45s;transform:translateZ(0);-webkit-user-drag:none}
.mw-card img{display:block;width:100%;height:100%;object-fit:contain;padding:10px;pointer-events:none;user-select:none}
.mw-card.is-photo img{object-fit:cover;padding:0}
.mw-cap{position:absolute;inset:auto 0 0;padding:26px 12px 10px;background:linear-gradient(transparent,#0b1622e6);color:#fff;font-size:13px;line-height:1.35;font-weight:600;opacity:0;transform:translateY(8px);transition:opacity .3s,transform .3s}
.mw-cap small{display:block;font-weight:500;color:#cfe0f0;font-size:12px}
.mw-card:hover,.mw-card:focus-visible{transform:translateZ(60px) scale(1.07);box-shadow:0 30px 60px -20px #000,0 0 0 2px var(--mw-gold);z-index:2}
.mw-card:hover .mw-cap,.mw-card:focus-visible .mw-cap{opacity:1;transform:none}
.mw-card:focus-visible{outline:none}
.mw-note{margin:6px 0 0;text-align:center;font-size:13px;color:#8fa3b8}

/* Fallback grid (no JS / reduced motion): the source list itself */
.mw-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px;margin:0 auto;padding:0 max(16px,calc((100% - 1200px)/2));list-style:none}
.mw-list .mw-card{height:auto;aspect-ratio:4/3}
.mw-list .mw-cap{opacity:1;transform:none;font-size:12px;padding:20px 8px 8px}
.mw-stage.is-wall .mw-list{display:none}

/* Lightbox */
.mw-lb{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:0;border:0;background:#050b12f2;color:#fff}
.mw-lb[open]{display:grid;place-items:center}
.mw-lb::backdrop{background:#050b12cc}
.mw-lb-fig{display:flex;flex-direction:column;align-items:center;gap:14px;margin:0;max-width:min(92vw,1280px)}
.mw-lb-fig img{max-width:100%;max-height:calc(100dvh - 190px);width:auto;height:auto;border-radius:12px;background:#fff;object-fit:contain}
.mw-lb-fig img.is-photo{background:none}
.mw-lb-fig figcaption{text-align:center;max-width:720px;padding:0 60px}
.mw-lb-n{display:block;margin-bottom:4px;color:var(--mw-gold);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.mw-lb-t{display:block;font-size:16px}
.mw-lb-p{display:block;margin-top:2px;color:#b6c4d3;font-size:13px}
.mw-x,.mw-nav{position:fixed;display:grid;place-items:center;width:48px;height:48px;border:1px solid #ffffff33;border-radius:50%;background:#0b1622b3;color:#fff;font-size:28px;line-height:1;cursor:pointer;transition:background .25s}
.mw-x:hover,.mw-nav:hover{background:#016FC0}
.mw-x:focus-visible,.mw-nav:focus-visible{outline:3px solid var(--mw-gold);outline-offset:2px}
.mw-x{top:16px;right:16px}
.mw-prev{left:16px;top:50%;transform:translateY(-50%)}
.mw-next{right:16px;top:50%;transform:translateY(-50%)}
.mw-lb-cta{position:fixed;left:0;right:0;bottom:18px;width:max-content;margin-inline:auto;white-space:nowrap}

@media (max-width:760px){
  .mw{--mw-h:138px}
  .mw-plane,.mw-belt{gap:12px}
  .mw-wall{padding:20px 0 36px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
  .mw-chips{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;padding:2px 2px 8px;scrollbar-width:none}
  .mw-chips::-webkit-scrollbar{display:none}
  .mw-chips button{flex:none}
  .mw-prev,.mw-next{top:auto;bottom:84px;transform:none}
  .mw-lb-fig img{max-height:calc(100dvh - 260px)}
  .mw-lb-fig figcaption{padding:0 12px}
}
@media (prefers-reduced-motion:reduce){.mw-card,.mw-cap,.mw-wall{transition:none}}
