.works-block{
  --wb-text:#1B1B1B;
  --wb-muted:#6B6B6B;
  --wb-line:rgba(20,20,20,.10);
  --wb-accent:#5CB447;
  --wb-shadow:0 22px 48px -24px rgba(20,20,20,.35);
  font-family:Arial,Helvetica,"Segoe UI",sans-serif;
  color:var(--wb-text);
  max-width:1180px;
  margin:0 auto;
  padding:56px 24px;
  box-sizing:border-box;
}
.works-block *{ box-sizing:border-box; }
.works-block img{ -webkit-user-drag:none; user-select:none; }

.wb-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  margin-bottom:32px;
}
.wb-head h2{
  margin:0;
  font-size:clamp(24px,3.6vw,34px);
  font-weight:700;
}
.wb-toggle{
  display:flex;
  gap:4px;
  background:#F0F1EE;
  border-radius:100px;
  padding:4px;
}
.wb-toggle button{
  border:none;
  background:transparent;
  padding:9px 20px;
  border-radius:100px;
  font-family:inherit;
  font-size:14px;
  font-weight:600;
  color:var(--wb-muted);
  cursor:pointer;
  transition:background .2s ease, color .2s ease;
}
.wb-toggle button.on{
  background:#fff;
  color:var(--wb-text);
  box-shadow:0 4px 14px -6px rgba(20,20,20,.25);
}

.wb-view{ display:none; }
.wb-view.on{ display:block; }

/* shared contain-frame: nothing ever cropped */
.wb-frame{ position:relative; background:#F6F5F1; overflow:hidden; display:flex; align-items:center; justify-content:center; }
.wb-frame img{ max-width:100%; max-height:100%; width:auto; height:auto; display:block; }
.wb-frame .wb-cap{ position:absolute; left:0; right:0; bottom:0; padding:14px 16px 16px; color:#fff; background:linear-gradient(to top, rgba(8,7,10,.86) 0%, rgba(8,7,10,.15) 60%, transparent 100%); pointer-events:none; }
.wb-frame .wb-cap .wb-cat{ font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--wb-glow,#fff); margin-bottom:3px; font-weight:600; }
.wb-frame .wb-cap h3{ margin:0; font-size:15px; font-weight:700; line-height:1.2; }

/* ---- filmstrip (drag) ---- */
.wb-strip{ display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:14px; cursor:grab; }
.wb-strip.dragging{ cursor:grabbing; scroll-snap-type:none; }
.wb-card{ flex:0 0 240px; height:380px; scroll-snap-align:start; border-radius:12px; overflow:hidden; box-shadow:var(--wb-shadow); cursor:pointer; }

/* ---- rotating globe ---- */
.wb-globe-stage{
  position:relative; height:460px; perspective:1200px; display:flex; align-items:center; justify-content:center;
  cursor:grab; touch-action:none; border-radius:20px; overflow:hidden;
  background:#FFFFFF;
}
.wb-globe-stage.grabbing{ cursor:grabbing; }
.wb-globe{ position:relative; width:1px; height:1px; transform-style:preserve-3d; }
.wb-globe-item{
  position:absolute; top:0; left:0; border-radius:50%; cursor:pointer;
  background-image:var(--wb-img); background-size:cover; background-position:center top; background-repeat:no-repeat;
  box-shadow:
    inset -14px -16px 26px rgba(0,0,0,.4),
    inset 10px 12px 18px rgba(255,255,255,.45),
    0 10px 20px -8px rgba(0,0,0,.45);
}
.wb-globe-item::after{
  content:"";
  position:absolute; inset:0; border-radius:50%; pointer-events:none;
  background:
    radial-gradient(circle at 30% 24%, rgba(255,255,255,.5), transparent 42%),
    radial-gradient(circle at 72% 80%, rgba(0,0,0,.22), transparent 55%);
}
.wb-globe-hint{ text-align:center; margin-top:12px; font-size:13px; color:var(--wb-muted); }

@media (max-width:640px){
  .wb-card{ flex-basis:200px; height:320px; }
}

/* ---- morph-open viewer ---- */
.wb-morph-backdrop{ position:fixed; inset:0; background:rgba(9,8,11,0); z-index:9985; transition:background .5s ease; }
.wb-morph-clone{ position:fixed; z-index:9986; border-radius:12px; overflow:hidden; box-shadow:0 30px 70px -20px rgba(0,0,0,.6); cursor:zoom-out; }
.wb-morph-close{ position:fixed; z-index:9987; width:40px; height:40px; border-radius:50%; border:1px solid rgba(255,255,255,.22); background:rgba(255,255,255,.1); color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; opacity:0; transition:opacity .3s; }
