/* Preview-only component. Shared page styles and the original gallery are untouched. */
html.projects-slider-preview { scrollbar-gutter:stable; }
.vps { --vps-gold:#d4aa70; --vps-text:#f5f1e9; --vps-muted:#c6bfb2; position:relative; color:var(--vps-text); background:#111110; padding:80px 0 64px; overflow:hidden; }
.vps *, .vps-dialog * { box-sizing:border-box; }
.vps [hidden] { display:none; }
.vps ::selection, .vps-dialog ::selection { background:#d4aa70; color:#111110; }
.vps :focus-visible, .vps-dialog :focus-visible { outline:2px solid #d4aa70; outline-offset:6px; }
.vps__head { display:flex; align-items:baseline; justify-content:space-between; gap:24px; border-bottom:1px solid #3d3c37; padding-bottom:26px; }
.vps__heading { min-width:0; }
.vps__eyebrow, .vps__mobile-footer { display:none; }
.vps__head h2 { font:600 clamp(40px,4vw,64px)/1.05 Barlow,'Arial Narrow',sans-serif; }
.vps__count { font-size:14px; font-variant-numeric:tabular-nums; color:var(--vps-muted); white-space:nowrap; }
.vps__count strong { color:var(--vps-gold); font-weight:500; }
.vps__layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; min-height:650px; gap:6%; }
.vps__copy { padding:40px 0; min-width:0; }
.vps__text { min-height:var(--vps-text-height,280px); }
.vps__measure { position:absolute; left:0; top:0; visibility:hidden; pointer-events:none; }
.vps__measure .vps__text { min-height:0; }
.vps__title { font:600 clamp(48px,5.4vw,84px)/.99 Barlow,'Arial Narrow',sans-serif; letter-spacing:-.025em; text-wrap:balance; overflow-wrap:anywhere; max-width:10ch; margin:0 0 28px; }
.vps__summary { max-width:43ch; color:var(--vps-muted); font-size:15px; line-height:1.8; margin:0; }
.vps__category { color:var(--vps-gold); margin:24px 0 0; font-size:12px; }
.vps__open { display:inline-flex; align-items:center; gap:32px; background:transparent; border:0; border-bottom:1px solid var(--vps-gold); color:var(--vps-text); padding:16px 0; margin-top:16px; cursor:pointer; font-size:14px; }
.vps__open svg, .vps__card svg { width:20px; height:20px; stroke:currentColor; stroke-width:1.5; fill:none; }
.vps__open:hover { color:var(--vps-gold); }
.vps__controls { display:flex; align-items:center; gap:12px; margin-top:44px; }
.vps__nav, .vps-dialog__nav, .vps-dialog__close { display:grid; place-items:center; width:48px; height:48px; border:1px solid #716b60; color:var(--vps-text,#f5f1e9); background:transparent; cursor:pointer; flex-shrink:0; }
.vps__nav svg, .vps-dialog__nav svg, .vps-dialog__close svg { width:22px; height:22px; stroke:currentColor; stroke-width:1.5; fill:none; }
.vps__nav:hover, .vps-dialog__nav:hover, .vps-dialog__close:hover { background:#d4aa70; color:#111110; border-color:#d4aa70; }
.vps__nav:disabled, .vps__open:disabled, .vps__nav[aria-disabled="true"], .vps__open[aria-disabled="true"] { opacity:.45; cursor:wait; }
.vps__hint { color:var(--vps-muted); font-size:12px; margin-left:12px; }
.vps__deck { position:relative; height:650px; min-width:0; perspective:1100px; touch-action:pan-y; }
.vps__card { position:absolute; left:50%; top:47%; width:min(82%,390px); aspect-ratio:4/5; border:0; border-radius:12px; background:#252520; color:#f5f1e9; overflow:hidden; cursor:pointer; padding:0; transform:translate(-50%,-50%); backface-visibility:hidden; -webkit-user-select:none; user-select:none; }
.vps__card img { width:100%; height:100%; object-fit:cover; pointer-events:none; }
.vps__card::after { content:''; position:absolute; inset:58% 0 0; background:linear-gradient(transparent,rgba(10,10,9,.85)); pointer-events:none; }
.vps__card-label { position:absolute; z-index:1; bottom:24px; left:24px; right:24px; display:flex; justify-content:space-between; align-items:center; font-size:14px; font-weight:600; pointer-events:none; }
.vps__card[aria-hidden="true"] { pointer-events:none; }
.vps__status { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.vps__error { padding:32px 0; color:var(--vps-muted); }
.vps__error button { color:var(--vps-text); background:transparent; border:1px solid #716b60; padding:12px 20px; margin-top:16px; cursor:pointer; }
.vps-dialog { --vps-text:#f5f1e9; background:#111110; color:var(--vps-text); border:0; width:100%; max-width:none; height:100dvh; max-height:100dvh; padding:0; margin:0; font-family:Manrope,Arial,sans-serif; overflow:hidden; }
.vps-dialog::backdrop { background:rgba(0,0,0,.92); }
.vps-dialog[open] { display:grid; grid-template-rows:auto minmax(0,1fr) auto; }
.vps-dialog__head { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:20px 28px; border-bottom:1px solid #3d3c37; }
.vps-dialog__head h2 { font:600 clamp(22px,2.8vw,36px)/1.1 Barlow,'Arial Narrow',sans-serif; margin:0; }
.vps-dialog__close { border:0; }
.vps-dialog__stage { min-height:0; position:relative; display:grid; place-items:center; padding:16px 80px; touch-action:pan-y pinch-zoom; }
.vps-dialog__media { width:100%; height:100%; min-height:0; display:grid; place-items:center; }
.vps-dialog__media img, .vps-dialog__media video { width:100%; height:100%; min-height:0; max-height:100%; object-fit:contain; }
.vps-dialog__stage .vps-dialog__nav { position:absolute; top:50%; transform:translateY(-50%); z-index:1; }
.vps-dialog__prev { left:16px; }
.vps-dialog__next { right:16px; }
.vps-dialog__foot { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:16px 28px 24px; font-size:13px; border-top:1px solid #3d3c37; }
.vps-dialog__caption { color:#c6bfb2; max-width:90ch; }
.vps-dialog__count { white-space:nowrap; font-variant-numeric:tabular-nums; color:#d4aa70; }
.vps-dialog__message { color:#c6bfb2; text-align:center; }
.vps-dialog__message a { display:block; margin-top:16px; color:#d4aa70; text-decoration:underline; }
@media (min-width:1600px) { .vps__layout, .vps__deck { min-height:740px; } .vps__deck { height:740px; } .vps__card { width:420px; } }
@media (max-width:1000px) { .vps__layout { gap:3%; } .vps__title { font-size:60px; } .vps__card { width:88%; } }
@media (max-width:768px) {
  .vps { padding:48px 0 40px; }
  .vps__head { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:16px; padding-bottom:20px; }
  .vps__head h2 { font-size:clamp(34px,8vw,40px); }
  .vps__eyebrow { display:block; color:var(--vps-gold); font-size:11px; letter-spacing:.08em; margin:0 0 12px; }
  .vps__layout { grid-template-columns:1fr; gap:0; min-height:0; }
  .vps__copy { padding:32px 0 0; }
  .vps__text { min-height:var(--vps-text-height,238px); }
  .vps__title { font-size:clamp(44px,10vw,64px); max-width:16ch; margin-bottom:18px; }
  .vps__summary { font-size:14px; line-height:1.65; max-width:48ch; }
  .vps__category { margin-top:14px; }
  .vps__mobile-footer { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:12px; }
  .vps__open { margin-top:0; }
  .vps__controls { margin:0; justify-self:end; position:relative; z-index:1; }
  .vps__deck { height:clamp(420px,104vw,640px); margin-top:12px; overflow:clip; isolation:isolate; }
  .vps__card { width:min(80%,390px); top:46%; }
  .vps__hint { display:none; }
  .vps-dialog__head { gap:12px; padding:12px 16px; }
  .vps-dialog__stage { padding:8px 0 60px; }
  .vps-dialog__stage .vps-dialog__nav { top:auto; bottom:4px; transform:none; }
  .vps-dialog__prev { left:16px; } .vps-dialog__next { right:16px; }
  .vps-dialog__foot { padding:12px 16px max(16px,env(safe-area-inset-bottom)); align-items:flex-start; gap:16px; font-size:12px; }
  .vps-dialog__caption { max-height:5.5em; overflow:auto; }
}
@media (max-width:380px) { .vps__head { grid-template-columns:minmax(0,1fr); } }
@media (prefers-reduced-motion:reduce) { .vps *, .vps-dialog * { scroll-behavior:auto; } }
